Report errors in the background not to interfer with users (#262)

This commit is contained in:
Lonami Exo 2017-09-25 11:56:44 +02:00
parent c0ee123156
commit 01c91bb895

View File

@ -1,5 +1,6 @@
import urllib.request
import re
from threading import Thread
from .common import (
ReadCancelledError, InvalidParameterError, TypeNotFoundError,
@ -18,21 +19,28 @@ from .rpc_errors_401 import *
from .rpc_errors_420 import *
def report_error(code, message, report_method):
try:
# Ensure it's signed
report_method = int.from_bytes(
report_method.to_bytes(4, 'big'), 'big', signed=True
)
url = urllib.request.urlopen(
'https://rpc.pwrtelegram.xyz?code={}&error={}&method={}'
.format(code, message, report_method)
)
url.read()
url.close()
except:
"We really don't want to crash when just reporting an error"
def rpc_message_to_error(code, message, report_method=None):
if report_method is not None:
try:
# Ensure it's signed
report_method = int.from_bytes(
report_method.to_bytes(4, 'big'), 'big', signed=True
)
url = urllib.request.urlopen(
'https://rpc.pwrtelegram.xyz?code={}&error={}&method={}'
.format(code, message, report_method)
)
url.read()
url.close()
except:
"We really don't want to crash when just reporting an error"
Thread(
target=report_method,
args=(code, message, report_method)
).start()
errors = {
303: rpc_errors_303_all,