summaryrefslogtreecommitdiff
path: root/bin/proxy.py
blob: b586a5bec79da68350f6f3657f0e1da45ee7550c (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
#!/usr/bin/env python3
import http.server
import urllib.request
import re

class ProxyHandler(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":
      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()

if __name__ == '__main__':
  http.server.test(HandlerClass=ProxyHandler)