diff options
| author | jules <julescarbon@gmail.com> | 2018-11-18 14:34:39 +0100 |
|---|---|---|
| committer | jules <julescarbon@gmail.com> | 2018-11-18 14:34:39 +0100 |
| commit | b40da08f7324e9941646372bcfde7ae31dd9f9d1 (patch) | |
| tree | 859abea68e08e602669b5df186509b9f602c6434 /bin | |
| parent | 567ff9c4ad1aba2a9dba6ccea47c4ddbcaf3a1a6 (diff) | |
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/proxy.py | 23 |
1 files 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) |
