When added, backend broadcasts

This commit is contained in:
James Barnsley
2017-02-14 21:41:13 +13:00
parent ef2f873295
commit 9401289802
4 changed files with 38 additions and 23 deletions

View File

@ -84,7 +84,7 @@ class IrisFrontend(pykka.ThreadingActor, CoreListener):
# Listen for core events, and update our frontend as required
##
def track_playback_ended( self, tl_track, time_position ):
self.check_for_radio_update()
self.check_for_radio_update()
##
@ -190,15 +190,15 @@ class IrisFrontend(pykka.ThreadingActor, CoreListener):
def get_spotify_token( self ):
return self.spotify_token
# get queue metadata
##
# Queue metadata
##
def get_queue_metadata( self ):
return self.queue_metadata
# add queue metadata
def add_queue_metadata( self, tlids, added_from, added_by ):
queue_metadata = self.queue_metadata
for tlid in tlids:
item = {
@ -206,9 +206,12 @@ class IrisFrontend(pykka.ThreadingActor, CoreListener):
'added_from': added_from,
'added_by': added_by
}
queue_metadata['tlid_'+str(tlid)] = item
self.queue_metadata['tlid_'+str(tlid)] = item
return queue_metadata
# broadcast to all clients
pusher.broadcast('queue_metadata', {'queue_metadata': self.queue_metadata})
return self.queue_metadata
# get our config values

View File

@ -182,7 +182,7 @@ export let getFromUri = function(element,uri){
export let uriType = function( uri ){
var exploded = uri.split(':');
if( exploded[0] == 'spotify' ){
if (exploded[0] == 'spotify'){
switch( exploded[1] ){
case 'track':
return 'track'
@ -199,6 +199,15 @@ export let uriType = function( uri ){
return null
break;
}
} else if (exploded[0] == 'local'){
switch( exploded[1] ){
case 'album':
return 'album'
break;
case 'artist':
return 'artist'
break;
}
}
return null;

View File

@ -154,12 +154,9 @@ const PusherMiddleware = (function(){
store.dispatch({ type: 'RADIO', data: response.data })
}
)
request({ action: 'get_queue_metadata'})
.then(
response => {
store.dispatch({ type: 'QUEUE_METADATA', queue_metadata: response.data.queue_metadata })
}
)
store.dispatch(pusherActions.getQueueMetadata())
return next(action);
break;
@ -171,18 +168,13 @@ const PusherMiddleware = (function(){
request({ action: 'get_queue_metadata'})
.then(
response => {
store.dispatch({ type: 'QUEUE_METADATA', queue_metadata: response.data.queue_metadata })
store.dispatch({ type: 'QUEUE_METADATA', data: response.data })
}
)
break;
case 'PUSHER_ADD_QUEUE_METADATA':
request({ action: 'add_queue_metadata', tlids: action.tlids, added_from: action.from_uri })
.then(
response => {
store.dispatch({ type: 'QUEUE_METADATA', queue_metadata: response.data.queue_metadata })
}
)
break;
case 'START_UPGRADE':

View File

@ -131,8 +131,19 @@ export default function reducer(ui = {}, action){
});
case 'QUEUE_METADATA':
console.log(action);
return Object.assign({}, ui, { queue_metadata: action.queue_metadata });
var tracklist = Object.assign([], ui.current_tracklist)
for( var i = 0; i < tracklist.length; i++ ){
// load our metadata (if we have any for that tlid)
if (typeof(action.data.queue_metadata['tlid_'+tracklist[i].tlid]) !== 'undefined'){
tracklist[i] = Object.assign(
{},
tracklist[i],
action.data.queue_metadata['tlid_'+tracklist[i].tlid],
)
}
}
return Object.assign({}, ui, { current_tracklist: tracklist, queue_metadata: action.data.queue_metadata });
case 'RADIO':
case 'START_RADIO':