diff options
Diffstat (limited to 'bin/pep-proxy.py')
| -rwxr-xr-x | bin/pep-proxy.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/bin/pep-proxy.py b/bin/pep-proxy.py new file mode 100755 index 0000000..b44bbbc --- /dev/null +++ b/bin/pep-proxy.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +import http.server +import urllib.request +import re + +class MyHTTPRequestHandler(http.server.CGIHTTPRequestHandler ): + def end_headers(self): + self.send_my_headers() + + 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(); + 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) + |
