]> code.delx.au - mediapc-tools/blobdiff - ffclicker
xfdesktop-focus-fix
[mediapc-tools] / ffclicker
index c41e84f009b60d1279dd68624dc5886ee72b2851..add810b0ac235ace189ad28533b5723f89b2714a 100755 (executable)
--- a/ffclicker
+++ b/ffclicker
@@ -1,21 +1,27 @@
-#!/usr/bin/python2
+#!/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):
-        print "Loading:", 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()
     if pid < 0:
-        print >>sys.stderr, "Unable to fork!"
+        print("Unable to fork!", file=sys.stderr)
         sys.exit(1)
     if pid != 0:
         sys.exit(0)
@@ -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
@@ -34,7 +39,6 @@ if __name__ == "__main__":
         if sys.argv[1] == "--fork":
             fork = True
         else:
-            print >>sys.stderr, "Usage: %s [--fork]" % sys.argv[0]
+            print("Usage: %s [--fork]" % sys.argv[0], file=sys.stderr)
             sys.exit(1)
     main(fork)
-