Skip to content

Commit

Permalink
When added, backend broadcasts
Browse files Browse the repository at this point in the history
  • Loading branch information
jaedb committed Feb 14, 2017
1 parent ef2f873 commit 9401289
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 23 deletions.
19 changes: 11 additions & 8 deletions mopidy_iris/frontend.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def refresh_spotify_token( self ):
# 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()


##
Expand Down Expand Up @@ -190,25 +190,28 @@ def stop_radio( self ):
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 = {
'tlid': tlid,
'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
Expand Down
11 changes: 10 additions & 1 deletion src/js/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -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;
Expand Down
16 changes: 4 additions & 12 deletions src/js/services/pusher/middleware.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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':
Expand Down
15 changes: 13 additions & 2 deletions src/js/services/ui/reducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -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':
Expand Down

0 comments on commit 9401289

Please sign in to comment.