Merge pull request #368 from lbryio/bug-report

bug reports sent to slack
This commit is contained in:
Jack Robison 2017-01-02 16:24:57 -05:00 committed by GitHub
commit 21602dc5a1
3 changed files with 63 additions and 2 deletions

View file

@ -241,6 +241,8 @@ class ApplicationSettings(Settings):
self.LOGGLY_TOKEN = 'LJEzATH4AzRgAwxjAP00LwZ2YGx3MwVgZTMuBQZ3MQuxLmOv' self.LOGGLY_TOKEN = 'LJEzATH4AzRgAwxjAP00LwZ2YGx3MwVgZTMuBQZ3MQuxLmOv'
self.ANALYTICS_ENDPOINT = 'https://api.segment.io/v1' self.ANALYTICS_ENDPOINT = 'https://api.segment.io/v1'
self.ANALYTICS_TOKEN = 'Ax5LZzR1o3q3Z3WjATASDwR5rKyHH0qOIRIbLmMXn2H=' self.ANALYTICS_TOKEN = 'Ax5LZzR1o3q3Z3WjATASDwR5rKyHH0qOIRIbLmMXn2H='
self.SLACK_WEBHOOK = ('nUE0pUZ6Yl9bo29epl5moTSwnl5wo20ip2IlqzywMKZiIQSFZR5'
'AHx4mY0VmF0WQZ1ESEP9kMHZlp1WzJwWOoKN3ImR1M2yUAaMyqGZ=')
self.DB_REVISION_FILE_NAME = 'db_revision' self.DB_REVISION_FILE_NAME = 'db_revision'
Settings.__init__(self) Settings.__init__(self)

View file

@ -37,6 +37,14 @@ def today():
return datetime.datetime.today() return datetime.datetime.today()
def timedelta(**kwargs):
return datetime.timedelta(**kwargs)
def datetime_obj(*args, **kwargs):
return datetime.datetime(*args, **kwargs)
def generate_id(num=None): def generate_id(num=None):
h = get_lbry_hash_obj() h = get_lbry_hash_obj()
if num is not None: if num is not None:

View file

@ -8,9 +8,9 @@ import subprocess
import sys import sys
import base58 import base58
import requests import requests
import urllib
import simplejson as json import simplejson as json
from urllib2 import urlopen from urllib2 import urlopen
from datetime import datetime
from decimal import Decimal from decimal import Decimal
from twisted.web import server from twisted.web import server
@ -817,7 +817,8 @@ class Daemon(AuthJSONRPCServer):
return d return d
def _get_long_count_timestamp(self): def _get_long_count_timestamp(self):
return int((datetime.utcnow() - (datetime(year=2012, month=12, day=21))).total_seconds()) dt = utils.utcnow() - utils.datetime_obj(year=2012, month=12, day=21)
return int(dt.total_seconds())
def _update_claim_cache(self): def _update_claim_cache(self):
f = open(os.path.join(self.db_dir, "stream_info_cache.json"), "w") f = open(os.path.join(self.db_dir, "stream_info_cache.json"), "w")
@ -1184,6 +1185,21 @@ class Daemon(AuthJSONRPCServer):
log.info("Get version info: " + json.dumps(msg)) log.info("Get version info: " + json.dumps(msg))
return self._render_response(msg, OK_CODE) return self._render_response(msg, OK_CODE)
def jsonrpc_report_bug(self, p):
"""
Report a bug to slack
Args:
'message': string, message to send
Returns:
True if successful
"""
bug_message = p['message']
platform_name = self._get_platform()['platform']
report_bug_to_slack(bug_message, self.lbryid, platform_name, lbrynet_version)
return self._render_response(True, OK_CODE)
def jsonrpc_get_lbry_session_info(self): def jsonrpc_get_lbry_session_info(self):
""" """
Get information about the current lbrynet session Get information about the current lbrynet session
@ -2627,6 +2643,41 @@ class _GetFileHelper(object):
return d return d
def loggly_time_string(dt):
formatted_dt = dt.strftime("%Y-%m-%dT%H:%M:%S")
milliseconds = str(round(dt.microsecond * (10.0**-5), 3))
return urllib.quote_plus(formatted_dt + milliseconds + "Z")
def get_loggly_query_string(lbry_id):
decoded_id = base58.b58encode(lbry_id)
base_loggly_search_url = "https://lbry.loggly.com/search#"
now = utils.now()
yesterday = now - utils.timedelta(days=1)
params = {
'terms': 'json.lbry_id:{}*'.format(decoded_id[:SHORT_ID_LEN]),
'from': loggly_time_string(yesterday),
'to': loggly_time_string(now)
}
data = urllib.urlencode(params)
return base_loggly_search_url + data
def report_bug_to_slack(message, lbry_id, platform_name, app_version):
webhook = utils.deobfuscate(conf.settings.SLACK_WEBHOOK)
payload_template = "os: %s\n version: %s\n<%s|loggly>\n%s"
payload_params = (
platform_name,
app_version,
get_loggly_query_string(lbry_id),
message
)
payload = {
"text": payload_template % payload_params
}
requests.post(webhook, json.dumps(payload))
def get_lbry_file_search_value(p): def get_lbry_file_search_value(p):
for searchtype in (FileID.SD_HASH, FileID.NAME, FileID.FILE_NAME): for searchtype in (FileID.SD_HASH, FileID.NAME, FileID.FILE_NAME):
value = p.get(searchtype) value = p.get(searchtype)