[~] Refactor

This commit is contained in:
Siarhei Siniak 2022-10-22 22:56:32 +03:00
parent 54e864f79b
commit 1e5e8911ad

@ -23,12 +23,39 @@ class Application:
MAX_FILE_SIZE = 512 * 1024 * 1024 MAX_FILE_SIZE = 512 * 1024 * 1024
LOG_SIZE = 10 * 1024 * 1024 LOG_SIZE = 10 * 1024 * 1024
MAX_TIME = 16 MAX_TIME = 16
EASTER_TOKEN = 'FUCK'
def __init__(self, environ, start_response): def __init__(self, environ, start_response):
self.environ = environ self.environ = environ
try:
with io.open(
'wsgi_config.json',
'r'
) as f:
config = json.load(f)
assert isinstance(config, dict)
except:
config = dict()
self.config = config
self.start_response = start_response self.start_response = start_response
self.log_path = 'log.txt' self.log_path = 'log.txt'
def debug(self):
debug_token = self.config.get('debug_token')
if not (
not debug_token is None and \
isinstance(debug_token, str)
):
return False
return self.environ.get('HTTP_%s' % Application.EASTER_TOKEN) == \
self.config.get('debug_token') or \
('%s=%s' % (Application.EASTER_TOKEN, debug_token)) in \
self.environ['QUERY_STRING']
def trim_log(self): def trim_log(self):
if not os.path.exists(self.log_path): if not os.path.exists(self.log_path):
return return
@ -55,6 +82,9 @@ class Application:
return return
def op1(self, data=None, json_data=None,): def op1(self, data=None, json_data=None,):
if not self.debug():
return
if data is None: if data is None:
if not json_data is None: if not json_data is None:
data = json.dumps(json_data) data = json.dumps(json_data)
@ -375,6 +405,7 @@ class Application:
finished_output = True finished_output = True
else: else:
chunk2 = chunk chunk2 = chunk
if len(chunk2) > 0: if len(chunk2) > 0:
output_stream.sendall(chunk2) output_stream.sendall(chunk2)
sent_bytes += len(chunk2) sent_bytes += len(chunk2)
@ -392,11 +423,10 @@ class Application:
self.op1(json_data=dict( self.op1(json_data=dict(
action='close_connection', action='close_connection',
extra=pprint.pformat([ extra=pprint.pformat(dict(
output_stream, content_length2=content_length2,
output_stream.__class__, sent_bytes=sent_bytes,
dir(output_stream), )),
]),
)) ))
return return
@ -528,7 +558,7 @@ class Application:
) )
) )
if 'HTTP_FUCK' in self.environ: if self.environ.get('HTTP_%s' % Application.EASTER_TOKEN) == 'fuck':
output_stream = self.environ['passenger.hijack'](True) output_stream = self.environ['passenger.hijack'](True)
content = 'fuck off' content = 'fuck off'