#!/usr/bin/python3
-import cherrypy
+import http.server
import os
import sys
+import urllib
import webbrowser
-class Listener(object):
- @cherrypy.expose
- def firefox(self, url):
+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)
- raise cherrypy.HTTPRedirect(url, status=303)
+
+ self.send_response(code=303)
+ self.send_header("Location", url)
+ self.end_headers()
def do_fork():
pid = os.fork()
def main(fork):
if fork:
do_fork()
- cherrypy.tree.mount(Listener())
- cherrypy.server.socket_host = "0.0.0.0"
- cherrypy.server.socket_port = 8080
- cherrypy.engine.start()
+
+ with http.server.HTTPServer(("0.0.0.0", 8080), FirefoxServer) as httpd:
+ httpd.serve_forever()
if __name__ == "__main__":
fork = False
print("Usage: %s [--fork]" % sys.argv[0], file=sys.stderr)
sys.exit(1)
main(fork)
-