# HG changeset patch # User Drew Perttula # Date 2014-06-02 00:10:48 # Node ID 7f5a9958095b2b22873f7cd2d20ef44c6b819b5e # Parent 2d2be076754f814aed83dc4b3fe1244c454b4b42 move curvecalc's web server to another file Ignore-this: 14062bdcc64093acec9f634357100200 diff --git a/bin/curvecalc b/bin/curvecalc --- a/bin/curvecalc +++ b/bin/curvecalc @@ -44,6 +44,7 @@ from light9.rdfdb.syncedgraph import Syn 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 @@ def launch(args, graph, session, opts, s 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() diff --git a/light9/curvecalc/curveedit.py b/light9/curvecalc/curveedit.py new file mode 100644 --- /dev/null +++ b/light9/curvecalc/curveedit.py @@ -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()))