Queue metadata endpoint

This commit is contained in:
James Barnsley
2017-02-14 12:13:07 +13:00
parent 7184fad11f
commit 02d3868d1e
12 changed files with 113 additions and 16 deletions

View File

@ -27,6 +27,7 @@ class IrisFrontend(pykka.ThreadingActor, CoreListener):
self.version = mopidy_iris.__version__
self.is_root = ( os.geteuid() == 0 )
self.spotify_token = False
self.queue_metadata = {}
self.radio = {
"enabled": 0,
"seed_artists": [],
@ -190,6 +191,26 @@ class IrisFrontend(pykka.ThreadingActor, CoreListener):
return self.spotify_token
# get queue metadata
def get_queue_metadata( self ):
return self.queue_metadata
# add queue metadata
def add_queue_metadata( self, tlids, from_uri, added_by ):
queue_metadata = self.queue_metadata
for tlid in tlids:
item = {
'tlid': tlid,
'from_uri': from_uri,
'added_by': added_by
}
queue_metadata['tlid_'+str(tlid)] = item
return queue_metadata
# get our config values
def get_config( self ):
all_config = self.config

View File

@ -210,6 +210,35 @@ class PusherWebsocketHandler(tornado.websocket.WebSocketHandler):
messageJson['request_id'],
{ 'connections': connectionsDetailsList }
)
# add some queue metadata
elif messageJson['action'] == 'add_queue_metadata':
queue_metadata = self.frontend.add_queue_metadata(
messageJson['tlids'],
messageJson['from_uri'],
connections[self.connectionid]['client']['username']
)
send_message(
self.connectionid,
'response',
messageJson['request_id'],
{ 'queue_metadata': queue_metadata }
)
# get our queue metadata (added_by, from, etc)
elif messageJson['action'] == 'get_queue_metadata':
connectionsDetailsList = []
for connection in connections.itervalues():
connectionsDetailsList.append(connection['client'])
send_message(
self.connectionid,
'response',
messageJson['request_id'],
{ 'queue_metadata': self.frontend.get_queue_metadata() }
)
# change connection's client username
elif messageJson['action'] == 'set_username':