33import logging
44import os
55import tornado .web
6+ import tornado .websocket
7+ import json
68#import mem
79
810#from services.sync import sync
9- from services .upgrade import upgrade
11+ from services .upgrade import upgrade
12+ from services .pusher import pusher
1013
1114#from services.queuemanager import core as QueueManagerCore
1215#from services.queuemanager import frontend
1316#from services.queuemanager import requesthandler as QueueManagerRequestHandler
1417
1518from mopidy import config , ext
1619
17- __version__ = '2.4.11 '
20+ __version__ = '2.5.1 '
1821__ext_name__ = 'spotmop'
1922__verbosemode__ = False
2023
21- logger = logging .getLogger (__ext_name__ )
24+ logger = logging .getLogger (__name__ )
2225
2326class SpotmopExtension (ext .Extension ):
2427 dist_name = 'Mopidy-Spotmop'
@@ -32,6 +35,8 @@ def get_default_config(self):
3235 def get_config_schema (self ):
3336 schema = super (SpotmopExtension , self ).get_config_schema ()
3437 schema ['debug' ] = config .Boolean ()
38+ schema ['pusherport' ] = config .String ()
39+ schema ['pusherclientmap' ] = config .String ()
3540 return schema
3641
3742 def setup (self , registry ):
@@ -49,23 +54,27 @@ def setup(self, registry):
4954 'factory' : spotmop_client_factory
5055 })
5156
52- logger .info ('Setup Spotmop' )
53-
57+ logger .info ('Starting Spotmop web client' )
5458
5559def spotmop_client_factory (config , core ):
5660
5761 # TODO create minified version of the project for production (or use Bower or Grunt for building??)
5862 environment = 'dev' if config .get (__ext_name__ )['debug' ] is True else 'prod'
5963 spotmoppath = os .path .join ( os .path .dirname (__file__ ), 'static' )
64+
65+ # PUSHER: TODO: need to fire this up from within the PusherHandler class... somehow
66+ pusherport = str (config ['spotmop' ]['pusherport' ])
67+ application = tornado .web .Application ([
68+ ('/pusher' , pusher .PusherHandler ),
69+ ])
70+ application .listen (pusherport )
71+ logger .info ( 'Pusher server running on []:' + str (pusherport ) )
6072
6173 return [
6274 ('/upgrade' , upgrade .UpgradeRequestHandler , {'core' : core , 'config' : config , 'version' : __version__ }),
75+ ('/pusher/([^/]+)' , pusher .PusherRequestHandler , {'core' : core , 'config' : config , 'version' : __version__ }),
6376 (r'/(.*)' , tornado .web .StaticFileHandler , {
6477 "path" : spotmoppath ,
6578 "default_filename" : "index.html"
66- })
67- ]
68-
69-
70-
71-
79+ }),
80+ ]
0 commit comments