#!/usr/bin/python3 import http.server import os import sys import urllib import webbrowser class FirefoxServer(http.server.BaseHTTPRequestHandler): def do_GET(self): query_string = self.path.partition("?")[2] url = urllib.parse.parse_qs(query_string)["url"][0] print("Loading:", url) webbrowser.open(url) self.send_response(code=303) self.send_header("Location", url) self.end_headers() def do_fork(): pid = os.fork() if pid < 0: print("Unable to fork!", file=sys.stderr) sys.exit(1) if pid != 0: sys.exit(0) def main(fork): if fork: do_fork() with http.server.HTTPServer(("0.0.0.0", 8080), FirefoxServer) as httpd: httpd.serve_forever() if __name__ == "__main__": fork = False if len(sys.argv) != 1: if sys.argv[1] == "--fork": fork = True else: print("Usage: %s [--fork]" % sys.argv[0], file=sys.stderr) sys.exit(1) main(fork)