From 31ed15d90787c8bc76c218ecce382df37abaf519 Mon Sep 17 00:00:00 2001 From: James Barnsley Date: Sat, 6 Oct 2018 09:57:05 +1300 Subject: [PATCH] Provider field in all assets, fixes #332 --- src/js/helpers.js | 18 ++++++++++++++++++ src/js/services/mopidy/middleware.js | 7 +++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/js/helpers.js b/src/js/helpers.js index 134d236f..d7fdbb1d 100755 --- a/src/js/helpers.js +++ b/src/js/helpers.js @@ -412,6 +412,9 @@ export let formatAlbum = function(data){ } if (data.album_type){ album.type = data.album_type; + } + if (album.provider === undefined && album.uri !== undefined){ + album.provider = uriSource(album.uri); } return album; @@ -474,6 +477,10 @@ export let formatArtist = function(data){ artist.biography_publish_date = data.bio.published; } } + + if (artist.provider === undefined && artist.uri !== undefined){ + artist.provider = uriSource(artist.uri); + } return artist; } @@ -534,6 +541,10 @@ export let formatPlaylist = function(data){ playlist.uri = playlist.uri.replace(/spotify:user:([^:]*?):/i, "spotify:"); } + if (playlist.provider === undefined && playlist.uri !== undefined){ + playlist.provider = uriSource(playlist.uri); + } + return playlist; } @@ -604,6 +615,9 @@ export let formatUser = function(data){ if (data.id && !user.name){ user.name = data.id; } + if (user.provider === undefined && user.uri !== undefined){ + user.provider = uriSource(user.uri); + } return user; } @@ -698,6 +712,10 @@ export let formatTrack = function(data){ } } + if (track.provider === undefined && track.uri !== undefined){ + track.provider = uriSource(track.uri); + } + return track; } diff --git a/src/js/services/mopidy/middleware.js b/src/js/services/mopidy/middleware.js index dbce30ec..94ce1f05 100755 --- a/src/js/services/mopidy/middleware.js +++ b/src/js/services/mopidy/middleware.js @@ -571,9 +571,8 @@ const MopidyMiddleware = (function(){ // playlist already in index if (store.getState().core.playlists.hasOwnProperty(action.uri)){ - // make sure we didn't get this playlist from Mopidy-Spotify - // if we did, we'd have a cached version on server so no need to fetch - if (!store.getState().core.playlists[action.uri].is_mopidy){ + // Spotify-provied playlists need to be handled by the Spotify service + if (store.getState().core.playlists[action.uri].provider == 'spotify'){ store.dispatch(spotifyActions.getPlaylistTracksAndPlay(action.uri, action.shuffle)) break } @@ -1502,7 +1501,7 @@ const MopidyMiddleware = (function(){ uri: response.uri, type: 'playlist', is_completely_loaded: true, - is_mopidy: true, + provider: 'mopidy', tracks: (response.tracks ? response.tracks : []), tracks_total: (response.tracks ? response.tracks.length : []) }