When added, backend broadcasts
This commit is contained in:
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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':
|
||||
|
||||
@ -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':
|
||||
|
||||
Reference in New Issue
Block a user