From b0ff8b86deace57f7135bf6085499b94d98e245e Mon Sep 17 00:00:00 2001 From: Siarhei Siniak Date: Sat, 18 Jun 2022 20:15:51 +0300 Subject: [PATCH] [~] Refactor --- d1/f2.py | 166 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 85 insertions(+), 81 deletions(-) diff --git a/d1/f2.py b/d1/f2.py index 94d2ca0..4fd4c75 100644 --- a/d1/f2.py +++ b/d1/f2.py @@ -12,87 +12,91 @@ sys.path.insert(0, os.path.dirname(__file__)) def application(environ, start_response): - t4 = int(environ.get('CONTENT_LENGTH', '0')) - t3 = environ['wsgi.input'].read(t4) - def op1(rh): - t5 = rh.split('_') - t6 = ['%s%s' % (o[0].upper(), o[1:].lower()) for o in t5] - return '-'.join(t6) - t2 = { - op1(k[5:]) : v - for k, v in environ.items() - if k.startswith('HTTP_') - } - for k, v in environ.items(): - if k in [ - 'CONTENT_TYPE', - ]: - t2[op1(k)] = v - t7 = dict( - uri=environ['REQUEST_URI'], - method=environ['REQUEST_METHOD'], - protocol=environ['SERVER_PROTOCOL'], - ) try: - t17 = [ - 'curl', - 'http://127.0.0.1:9050%s' % t7['uri'], - *sum([ - ['--header', '%s: %s' % (k, v)] - for k, v in t2.items() - ], []), - '-X', t7['method'], - '-d', '@-', - '--max-filesize', '%d' % (60 * 1024 * 1024), - '-o', '1.dat', - '-v', - '-q', - ] - with io.open('1.json', 'w') as f: - f.write(json.dumps(dict(t17=t17, t3=t3.decode('utf-8')))) - with subprocess.Popen( - t17, stderr=subprocess.PIPE, stdout=subprocess.PIPE, stdin=subprocess.PIPE - ) as p: - p.stdin.write(t3) - p.stdin.flush() - p.stdin.close() - try: - p.wait(20) - response_headers = [ - o[2:] - for o in p.stderr.read().decode('utf-8').splitlines() - if o.startswith('< ') - ] - t9 = '\r\n'.join(response_headers) - while True: - try: - with io.open('1.dat', 'rb') as f: - t10 = f.read() - break - except: - time.sleep(0.05) - finally: - p.terminate() - except: - t9 = 'FUCK SHIT\r\n' - t10 = traceback.format_exc().encode('utf-8') + t4 = int(environ.get('CONTENT_LENGTH', '0')) + t3 = environ['wsgi.input'].read(t4) + def op1(rh): + t5 = rh.split('_') + t6 = ['%s%s' % (o[0].upper(), o[1:].lower()) for o in t5] + return '-'.join(t6) + t2 = { + op1(k[5:]) : v + for k, v in environ.items() + if k.startswith('HTTP_') + } + for k, v in environ.items(): + if k in [ + 'CONTENT_TYPE', + ]: + t2[op1(k)] = v + t7 = dict( + uri=environ['REQUEST_URI'], + method=environ['REQUEST_METHOD'], + protocol=environ['SERVER_PROTOCOL'], + ) + try: + t17 = [ + 'curl', + 'http://127.0.0.1:9050%s' % t7['uri'], + *sum([ + ['--header', '%s: %s' % (k, v)] + for k, v in t2.items() + ], []), + '-X', t7['method'], + '-d', '@-', + '--max-filesize', '%d' % (60 * 1024 * 1024), + '-o', '1.dat', + '-v', + '-q', + ] + with io.open('1.json', 'w') as f: + f.write(json.dumps(dict(t17=t17, t3=t3.decode('utf-8')))) + with subprocess.Popen( + t17, stderr=subprocess.PIPE, stdout=subprocess.PIPE, stdin=subprocess.PIPE + ) as p: + p.stdin.write(t3) + p.stdin.flush() + p.stdin.close() + try: + p.wait(20) + response_headers = [ + o[2:] + for o in p.stderr.read().decode('utf-8').splitlines() + if o.startswith('< ') + ] + t9 = '\r\n'.join(response_headers) + while True: + try: + with io.open('1.dat', 'rb') as f: + t10 = f.read() + break + except: + time.sleep(0.05) + finally: + p.terminate() + except: + t9 = 'FUCK SHIT\r\n' + t10 = traceback.format_exc().encode('utf-8') + + if not any([o.startswith('Content-Length') for o in t9]): + t9 = t9.replace('Transfer-Encoding: chunked\r\n', '') + t9 += 'Content-Length: %d\r\n' % len(t10) + t11 = t9.encode('utf-8') + t10 + t13 = t9.splitlines()[0] + t14 = t13.find(' ') + t15 = t13[t14 + 1:] + t16 = [(o[:o.find(':')], o[o.find(':') + 1:]) for o in t9.splitlines()[1:]] + if False: + t1 = start_response('200 OK', [('Content-Type', 'text/plain')]) + t1(t15) + t1(json.dumps(t16)) + t1(json.dumps(t17)) + t1(t10) + else: + t1 = start_response(t15, t16) + t1(t10) + except: + with io.open('log.txt', 'a') as f: + f.write(traceback.format_exc()) - if not any([o.startswith('Content-Length') for o in t9]): - t9 = t9.replace('Transfer-Encoding: chunked\r\n', '') - t9 += 'Content-Length: %d\r\n' % len(t10) - t11 = t9.encode('utf-8') + t10 - response += pprint.pformat(dict(t9=t9, t10=t10, t11=t11)) - t13 = t9.splitlines()[0] - t14 = t13.find(' ') - t15 = t13[t14 + 1:] - t16 = [(o[:o.find(':')], o[o.find(':') + 1:]) for o in t9.splitlines()[1:]] - if False: - t1 = start_response('200 OK', [('Content-Type', 'text/plain')]) - t1(t15) - t1(json.dumps(t16)) - t1(json.dumps(t17)) - t1(t10) - else: - t1 = start_response(t15, t16) - t1(t10) return []