Current track now using full track index
This commit is contained in:
@ -995,6 +995,29 @@ const MopidyMiddleware = (function(){
|
||||
break;
|
||||
|
||||
|
||||
/**
|
||||
* =============================================================== TRACKS ================
|
||||
* ======================================================================================
|
||||
**/
|
||||
|
||||
case 'MOPIDY_CURRENTTLTRACK':
|
||||
if (!action.data || !action.data.track){
|
||||
return mopidy
|
||||
}
|
||||
|
||||
// Fire off our universal track index loader
|
||||
store.dispatch({ type: 'TRACK_LOADED', key: action.data.track.uri, track: action.data.track })
|
||||
|
||||
// When current track is Spotify track, go get the full object
|
||||
// This is because Mopidy doesn't give us full artist/album objects, without artwork
|
||||
if (action.data.track.uri.substring(0,14) == 'spotify:track:'){
|
||||
store.dispatch( spotifyActions.getTrack( action.data.track.uri ) )
|
||||
}
|
||||
|
||||
next(action)
|
||||
break
|
||||
|
||||
|
||||
/**
|
||||
* =============================================================== LOCAL ================
|
||||
* ======================================================================================
|
||||
|
||||
@ -74,18 +74,6 @@ const SpotifyMiddleware = (function(){
|
||||
store.dispatch( spotifyActions.savePlaylist( action.key, action.name, action.is_public ))
|
||||
break
|
||||
|
||||
// when our mopidy server current track changes
|
||||
case 'MOPIDY_CURRENTTLTRACK':
|
||||
|
||||
// proceed as usual so we don't inhibit default functionality
|
||||
next(action)
|
||||
|
||||
// if the current track is a spotify track
|
||||
if( action.data && action.data.track.uri.substring(0,14) == 'spotify:track:' ){
|
||||
store.dispatch( spotifyActions.getTrack( action.data.track.uri ) )
|
||||
}
|
||||
break
|
||||
|
||||
// when radio returns
|
||||
case 'PUSHER_RADIO_STARTED':
|
||||
case 'PUSHER_RADIO_CHANGED':
|
||||
|
||||
@ -106,24 +106,57 @@ export default function reducer(ui = {}, action){
|
||||
return Object.assign({}, ui, { current_tracklist: tracklist });
|
||||
|
||||
case 'MOPIDY_CURRENTTLTRACK':
|
||||
if( !action.data ) return ui
|
||||
if (!action.data) return ui
|
||||
|
||||
var current_tracklist = []
|
||||
Object.assign(current_tracklist, ui.current_tracklist)
|
||||
|
||||
for( var i = 0; i < current_tracklist.length; i++ ){
|
||||
for (var i = 0; i < current_tracklist.length; i++){
|
||||
Object.assign(
|
||||
current_tracklist[i],
|
||||
{ playing: ( current_tracklist[i].tlid == action.data.tlid ) }
|
||||
)
|
||||
}
|
||||
|
||||
var current_track = action.data.track.uri
|
||||
var current_track = Object.assign(
|
||||
{},
|
||||
action.data.track,
|
||||
{
|
||||
tlid: action.data.tlid
|
||||
}
|
||||
)
|
||||
|
||||
return Object.assign({}, ui, {
|
||||
current_tracklist: current_tracklist,
|
||||
current_track: current_track
|
||||
});
|
||||
|
||||
case 'TRACK_LOADED':
|
||||
if (!action.key || !action.track) return ui
|
||||
|
||||
var tracks = Object.assign({}, ui.tracks)
|
||||
if (tracks[action.key]){
|
||||
var track = Object.assign({}, tracks[action.key], action.track)
|
||||
}else{
|
||||
var track = Object.assign({}, action.track)
|
||||
}
|
||||
|
||||
tracks[action.key] = track
|
||||
return Object.assign({}, ui, { tracks: tracks });
|
||||
|
||||
case 'TRACKS_LOADED':
|
||||
var tracks = Object.assign({}, ui.tracks)
|
||||
|
||||
for (var i = 0; i < action.tracks.length; i++){
|
||||
var track = action.tracks[i]
|
||||
if (typeof(tracks[track.uri]) !== 'undefined'){
|
||||
track = Object.assign({}, tracks[track.uri], track)
|
||||
}
|
||||
tracks[track.uri] = track
|
||||
}
|
||||
|
||||
return Object.assign({}, ui, { tracks: tracks });
|
||||
|
||||
case 'PUSHER_QUEUE_METADATA':
|
||||
case 'PUSHER_QUEUE_METADATA_CHANGED':
|
||||
var tracklist = Object.assign([], ui.current_tracklist)
|
||||
@ -404,40 +437,6 @@ export default function reducer(ui = {}, action){
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Tracks
|
||||
**/
|
||||
|
||||
case 'TRACK_LOADED':
|
||||
if (!action.key || !action.track) return ui
|
||||
|
||||
var tracks = Object.assign({}, ui.tracks)
|
||||
|
||||
if (tracks[action.key]){
|
||||
var track = Object.assign({}, tracks[action.key], action.track)
|
||||
}else{
|
||||
var track = Object.assign({}, action.track)
|
||||
}
|
||||
|
||||
tracks[action.key] = track
|
||||
return Object.assign({}, ui, { tracks: tracks });
|
||||
|
||||
case 'TRACKS_LOADED':
|
||||
var tracks = Object.assign({}, ui.tracks)
|
||||
|
||||
for (var i = 0; i < action.tracks.length; i++){
|
||||
var track = action.tracks[i]
|
||||
if (typeof(tracks[track.uri]) !== 'undefined'){
|
||||
track = Object.assign({}, tracks[track.uri], track)
|
||||
}
|
||||
tracks[track.uri] = track
|
||||
}
|
||||
|
||||
return Object.assign({}, ui, { tracks: tracks });
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Playlists
|
||||
**/
|
||||
|
||||
Reference in New Issue
Block a user