send bug reports to slack

This commit is contained in:
Jack 2017-01-02 14:52:24 -05:00
parent 585f802a91
commit c2c7d2b327
3 changed files with 63 additions and 2 deletions

View file

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

View file

@ -37,6 +37,14 @@ def 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):
h = get_lbry_hash_obj()
if num is not None:

View file

@ -8,9 +8,9 @@ import subprocess
import sys
import base58
import requests
import urllib
import simplejson as json
from urllib2 import urlopen
from datetime import datetime
from decimal import Decimal
from twisted.web import server
@ -817,7 +817,8 @@ class Daemon(AuthJSONRPCServer):
return d
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):
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))
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):
"""
Get information about the current lbrynet session
@ -2627,6 +2643,41 @@ class _GetFileHelper(object):
return d
def loggly_time_string(dt):
formatted_dt = dt.strftime("%Y-%m-%dT%H:%M:%S")
microseconds = str(round(dt.microsecond * (10.0**-5), 3))
return urllib.quote_plus(formatted_dt + microseconds + "Z")
def get_loggly_query_string(lbry_id):
decoded_id = base58.b58encode(lbry_id)
base_loggly_search_url = "https://lbry.loggly.com/search#terms=json.lbry_id%3A"
now = utils.now()
yesterday = now - utils.timedelta(days=1)
params = (
decoded_id[:SHORT_ID_LEN],
loggly_time_string(yesterday),
loggly_time_string(now)
)
formatted_params = "%s*&from=%s&until=%s&source_group=" % params
return base_loggly_search_url + formatted_params
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):
for searchtype in (FileID.SD_HASH, FileID.NAME, FileID.FILE_NAME):
value = p.get(searchtype)