Changeset - 7f5a9958095b
[Not reviewed]
default
0 1 1
Drew Perttula - 11 years ago 2014-06-02 00:10:48
drewp@bigasterisk.com
move curvecalc's web server to another file
Ignore-this: 14062bdcc64093acec9f634357100200
2 files changed with 33 insertions and 18 deletions:
0 comments (0 inline, 0 general)
bin/curvecalc
Show inline comments
 
@@ -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()
light9/curvecalc/curveedit.py
Show inline comments
 
new file 100644
 
"""
 
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()))
0 comments (0 inline, 0 general)