From b40da08f7324e9941646372bcfde7ae31dd9f9d1 Mon Sep 17 00:00:00 2001 From: jules Date: Sun, 18 Nov 2018 14:34:39 +0100 Subject: working proxy --- bin/proxy.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/bin/proxy.py b/bin/proxy.py index b44bbbc..b586a5b 100755 --- a/bin/proxy.py +++ b/bin/proxy.py @@ -3,29 +3,26 @@ import http.server import urllib.request import re -class MyHTTPRequestHandler(http.server.CGIHTTPRequestHandler ): +class ProxyHandler(http.server.CGIHTTPRequestHandler): def end_headers(self): self.send_my_headers() - - http.server.CGIHTTPRequestHandler .end_headers(self) + http.server.CGIHTTPRequestHandler.end_headers(self) def send_my_headers(self): self.send_header("Access-Control-Allow-Origin", "*") def do_GET(self): if self.path[0:14] == "/cgi-bin/proxy": - self.copyfile(urllib.request.urlopen(self.path[15:]), self.wfile) - elif re.match(r'.+cgi-bin/im/shader/.+$', self.path): - self.path = re.sub(r'(.+cgi-bin/)im/shader/(.+)$', r'\1\2', self.path); - super().do_GET(); + url = self.path[15:] + res = urllib.request.urlopen(url) + self.send_response(res.status) + self.send_header("Content-Type", res.getheader('Content-Type')) + self.send_header("Content-Length", res.getheader('Content-Length')) + self.end_headers() + self.wfile.write(res.read()) else: super().do_GET() - def do_POST(self): - if re.match(r'.+cgi-bin/im/shader/.+$', self.path): - self.path = re.sub(r'(.+cgi-bin/)im/shader/(.+)$', r'\1\2', self.path); - super().do_POST(); - if __name__ == '__main__': - http.server.test(HandlerClass=MyHTTPRequestHandler) + http.server.test(HandlerClass=ProxyHandler) -- cgit v1.2.3-70-g09d2