]> code.delx.au - mediapc-tools/blob - ffclicker
mythtv-mysql-maintenance
[mediapc-tools] / ffclicker
1 #!/usr/bin/python3
2
3 import http.server
4 import os
5 import sys
6 import urllib
7 import webbrowser
8
9 class FirefoxServer(http.server.BaseHTTPRequestHandler):
10 def do_GET(self):
11 query_string = self.path.partition("?")[2]
12 url = urllib.parse.parse_qs(query_string)["url"][0]
13
14 print("Loading:", url)
15 webbrowser.open(url)
16
17 self.send_response(code=303)
18 self.send_header("Location", url)
19 self.end_headers()
20
21 def do_fork():
22 pid = os.fork()
23 if pid < 0:
24 print("Unable to fork!", file=sys.stderr)
25 sys.exit(1)
26 if pid != 0:
27 sys.exit(0)
28
29 def main(fork):
30 if fork:
31 do_fork()
32
33 with http.server.HTTPServer(("0.0.0.0", 8080), FirefoxServer) as httpd:
34 httpd.serve_forever()
35
36 if __name__ == "__main__":
37 fork = False
38 if len(sys.argv) != 1:
39 if sys.argv[1] == "--fork":
40 fork = True
41 else:
42 print("Usage: %s [--fork]" % sys.argv[0], file=sys.stderr)
43 sys.exit(1)
44 main(fork)