changeset 1061:f3f66dc32bd8

switch curvecalc web server to cyclone Ignore-this: 6d72b5c9fdcea4473f96176df63b95ec
author Drew Perttula <drewp@bigasterisk.com>
date Mon, 02 Jun 2014 00:21:33 +0000
parents 473db8bebb8f
children 0f51a1a5785e
files bin/curvecalc light9/curvecalc/curveedit.py
diffstat 2 files changed, 16 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/bin/curvecalc	Mon Jun 02 00:19:38 2014 +0000
+++ b/bin/curvecalc	Mon Jun 02 00:21:33 2014 +0000
@@ -471,16 +471,17 @@
         log.debug("quitting now because of --startup-only")
         return
 
-    def hoverTimeResponse(request):
+    def hoverTimeResponse(requestHandler):
         results = dispatcher.send("onPlayPause")
         times = [t for listener, t in results if t is not None]
         if not times:
-            request.setResponseCode(404)
-            return "not hovering over any time"
+            requestHandler.set_status(404)
+            requestHandler.write("not hovering over any time")
+            return
         with graph.currentState(
                 tripleFilter=(session, L9['currentSong'], None)) as g:
             song = g.value(session, L9['currentSong'])
-            return json.dumps({"song": song, "hoverTime" : times[0]})
+            json.dump({"song": song, "hoverTime" : times[0]}, requestHandler)
         
     serveCurveEdit(networking.curveCalc.port, hoverTimeResponse)
 
--- a/light9/curvecalc/curveedit.py	Mon Jun 02 00:19:38 2014 +0000
+++ b/light9/curvecalc/curveedit.py	Mon Jun 02 00:21:33 2014 +0000
@@ -2,19 +2,20 @@
 this may be split out from curvecalc someday, since it doesn't
 need to be tied to a gui """
 from twisted.internet import reactor
-from light9 import networking
+import cyclone.web, cyclone.httpclient, cyclone.websocket
+
+from lib.cycloneerr import PrettyErrorHandler
+
 
 def serveCurveEdit(port, hoverTimeResponse):
     """
     /hoverTime requests actually are handled by the curvecalc gui
     """
-                       
-    from twisted.web import server, resource
-    class Hover(resource.Resource):
-        isLeaf = True
-        def render_GET(self, request):
-            if request.path == '/hoverTime':
-                return hoverTimeResponse(request)
-            raise NotImplementedError()
 
-    reactor.listenTCP(port, server.Site(Hover()))
+    class HoverTime(PrettyErrorHandler, cyclone.web.RequestHandler):
+        def get(self):
+            hoverTimeResponse(self)
+
+    reactor.listenTCP(port, cyclone.web.Application(handlers=[
+        (r'/hoverTime', HoverTime),
+        ], debug=True))