summaryrefslogtreecommitdiff
path: root/bin/proxy.py
blob: b44bbbc62dd2533936b37e8bba2105124878da96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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)