diff --git a/src/js/services/mopidy/middleware.js b/src/js/services/mopidy/middleware.js index ab929bd6..91fd4f00 100755 --- a/src/js/services/mopidy/middleware.js +++ b/src/js/services/mopidy/middleware.js @@ -1,7 +1,7 @@ import ReactGA from 'react-ga'; import Mopidy from 'mopidy'; import { sha256 } from 'js-sha256'; -import { sampleSize, compact, chunk, find } from 'lodash'; +import { sampleSize, compact, chunk, find, uniq } from 'lodash'; import { i18n } from '../../locale'; import { generateGuid, @@ -2096,7 +2096,7 @@ const MopidyMiddleware = (function () { ...item, images: [], // Images is a playlist dependency, so this prevents triggering full load })); - const playlists_uris = arrayOf('uri', playlists); + const playlists_uris = uniq(arrayOf('uri', playlists)); const allUris = [...playlists_uris]; store.dispatch(coreActions.itemLoaded({ ...playlistGroup, diff --git a/src/js/services/spotify/actions.js b/src/js/services/spotify/actions.js index be9a269d..66a73519 100755 --- a/src/js/services/spotify/actions.js +++ b/src/js/services/spotify/actions.js @@ -1,4 +1,5 @@ import React from 'react'; +import { uniq } from 'lodash'; import { arrayOf } from '../../util/arrays'; import { generateGuid, @@ -506,13 +507,16 @@ export function getMood(uri, { forceRefetch } = {}) { getState, endpoint: plEndpoint, }).then((response) => { - playlists = [...playlists, ...formatPlaylists(response.playlists.items)]; + playlists = [ + ...playlists, + ...formatPlaylists(response.playlists.items.filter((item) => item)), + ]; if (response.playlists.next) { fetchPlaylists(response.playlists.next); } else { dispatch(coreActions.itemLoaded({ ...playlistGroup, - playlists_uris: arrayOf('uri', playlists), + playlists_uris: uniq(arrayOf('uri', playlists)), })); dispatch(coreActions.itemsLoaded(playlists)); dispatch(uiActions.stopLoading(loaderId));