]> code.delx.au - mediapc-tools/commitdiff
ffclicker: Remove cherrypy dependency
authorJames Bunton <jamesbunton@delx.net.au>
Sun, 6 Aug 2017 11:12:43 +0000 (21:12 +1000)
committerJames Bunton <jamesbunton@delx.net.au>
Sun, 6 Aug 2017 11:21:19 +0000 (21:21 +1000)
ffclicker

index 46eab358e2524bad61adef379968e271f433fd28..add810b0ac235ace189ad28533b5723f89b2714a 100755 (executable)
--- a/ffclicker
+++ b/ffclicker
@@ -1,16 +1,22 @@
 #!/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()
@@ -23,10 +29,9 @@ def do_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
@@ -37,4 +42,3 @@ if __name__ == "__main__":
             print("Usage: %s [--fork]" % sys.argv[0], file=sys.stderr)
             sys.exit(1)
     main(fork)
-