changeset 1059:7f5a9958095b

move curvecalc's web server to another file Ignore-this: 14062bdcc64093acec9f634357100200
author Drew Perttula <drewp@bigasterisk.com>
date Mon, 02 Jun 2014 00:10:48 +0000
parents 2d2be076754f
children 473db8bebb8f
files bin/curvecalc light9/curvecalc/curveedit.py
diffstat 2 files changed, 33 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/bin/curvecalc	Mon Jun 02 00:10:33 2014 +0000
+++ b/bin/curvecalc	Mon Jun 02 00:10:48 2014 +0000
@@ -44,6 +44,7 @@
 from light9.rdfdb.patch import Patch
 from light9.editchoicegtk import EditChoice, Local
 from light9.observable import Observable
+from light9.curvecalc.curveedit import serveCurveEdit
 
 class SubtermExists(ValueError):
     pass
@@ -470,24 +471,18 @@
         log.debug("quitting now because of --startup-only")
         return
 
-    from twisted.web import server, resource
-    class Hover(resource.Resource):
-        isLeaf = True
-        def render_GET(self, request):
-            if request.path == '/hoverTime':
-                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"
-                with graph.currentState(
-                        tripleFilter=(session, L9['currentSong'], None)) as g:
-                    song = g.value(session, L9['currentSong'])
-                    return json.dumps({"song": song, "hoverTime" : times[0]})
-            raise NotImplementedError()
-
-    reactor.listenTCP(networking.curveCalc.port,
-                      server.Site(Hover()))
+    def hoverTimeResponse(request):
+        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"
+        with graph.currentState(
+                tripleFilter=(session, L9['currentSong'], None)) as g:
+            song = g.value(session, L9['currentSong'])
+            return json.dumps({"song": song, "hoverTime" : times[0]})
+        
+    serveCurveEdit(networking.curveCalc.port, hoverTimeResponse)
 
 def main():
     startTime = time.time()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/light9/curvecalc/curveedit.py	Mon Jun 02 00:10:48 2014 +0000
@@ -0,0 +1,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
+
+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()))