diff bin/vidref @ 1986:c8f0d1b9a171

timeline scrubbing shows up on vidref (again) Ignore-this: 62d3c7ffc411949e211c6e286f551b55
author drewp@bigasterisk.com
date Sun, 09 Jun 2019 04:45:24 +0000
parents df28c994365d
children 1b690005aabd
line wrap: on
line diff
--- a/bin/vidref	Sun Jun 09 02:04:56 2019 +0000
+++ b/bin/vidref	Sun Jun 09 04:45:24 2019 +0000
@@ -100,16 +100,29 @@
     pass
 
 
-class Time(cyclone.web.RequestHandler):
+class Time(PrettyErrorHandler, cyclone.web.RequestHandler):
 
     def put(self):
         body = json.loads(self.request.body)
         t = body['t']
-        source = body['source']
-        self.settings.gui.incomingTime(t, source)
+        for listener in TimeStream.time_stream_listeners:
+            listener.sendMessage(json.dumps({
+                'st': t,
+                'song': body['song'],
+            }))
         self.set_status(202)
 
 
+class TimeStream(cyclone.websocket.WebSocketHandler):
+    time_stream_listeners = []
+
+    def connectionMade(self, *args, **kwargs):
+        TimeStream.time_stream_listeners.append(self)
+
+    def connectionLost(self, reason):
+        TimeStream.time_stream_listeners.remove(self)
+
+
 class Clips(PrettyErrorHandler, cyclone.web.RequestHandler):
 
     def delete(self):
@@ -174,6 +187,7 @@
                 "path": 'todo',
             }),
             (r'/time', Time),
+            (r'/time/stream', TimeStream),
             (r'/stats/(.*)', StatsHandler, {
                 'serverName': 'vidref'
             }),