Lookup playlist data consistently
This commit is contained in:
parent
67246cda2f
commit
318a9763f2
15
mopidy_musicbox_webclient/static/js/controls.js
vendored
15
mopidy_musicbox_webclient/static/js/controls.js
vendored
@ -517,9 +517,11 @@ function getCurrentlyPlaying() {
|
||||
}
|
||||
|
||||
function getPlaylistByName(name, scheme, create) {
|
||||
return mopidy.playlists.filter({"name": name}).then(function(plists) {
|
||||
var uri_scheme = scheme || '';
|
||||
var uri = '';
|
||||
return mopidy.playlists.asList().catch(console.error.bind(console)).then(function(plists) {
|
||||
for (var i = 0; i < plists.length; i++) {
|
||||
if (!scheme || getScheme(plists[i].uri) == scheme) {
|
||||
if ((plists[i].name === name) && (scheme === '' || getScheme(plists[i].uri) === scheme)) {
|
||||
return plists[i];
|
||||
}
|
||||
}
|
||||
@ -533,11 +535,18 @@ function getPlaylistByName(name, scheme, create) {
|
||||
});
|
||||
}
|
||||
|
||||
function getPlaylistFull(uri) {
|
||||
return mopidy.playlists.lookup(uri).then(function(pl) {
|
||||
playlists[uri] = pl;
|
||||
return pl;
|
||||
});
|
||||
}
|
||||
|
||||
function getFavourites() {
|
||||
return getPlaylistByName(STREAMS_PLAYLIST_NAME,
|
||||
STREAMS_PLAYLIST_SCHEME,
|
||||
true).then(function(playlist) {
|
||||
return playlist;
|
||||
return getPlaylistFull(playlist.uri);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -425,7 +425,12 @@ function playlisttotable(pl, target, uri) {
|
||||
|
||||
function getPlaylistTracks(uri) {
|
||||
if (playlists[uri] && playlists[uri].tracks) {
|
||||
return playlists[uri].tracks;
|
||||
return Mopidy.when(playlists[uri].tracks);
|
||||
} else {
|
||||
showLoading(true);
|
||||
return mopidy.playlists.getItems(uri).then(function(refs) {
|
||||
return processPlaylistItems({'uri':uri, 'items':refs});
|
||||
}, console.error);
|
||||
}
|
||||
}
|
||||
|
||||
@ -438,16 +443,15 @@ function getUris(tracks) {
|
||||
}
|
||||
|
||||
function getTracksFromUri(uri, full_track_data) {
|
||||
full_track_data = full_track_data || false;
|
||||
var tracks = getPlaylistTracks(uri);
|
||||
if (!tracks && customTracklists[uri]) {
|
||||
tracks = customTracklists[uri];
|
||||
var returnTracksOrUris = function(tracks) {
|
||||
return (full_track_data || false) ? tracks : getUris(tracks);
|
||||
}
|
||||
if (full_track_data) {
|
||||
return tracks;
|
||||
} else {
|
||||
return getUris(tracks);
|
||||
if (customTracklists[uri]) {
|
||||
return returnTracksOrUris(customTracklists[uri]);
|
||||
} else if (playlists[uri] && playlists[uri].tracks) {
|
||||
return returnTracksOrUris(playlists[uri].tracks);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
//convert time to human readable format
|
||||
|
||||
@ -250,14 +250,10 @@ function togglePlaylists() {
|
||||
function showTracklist(uri) {
|
||||
$(PLAYLIST_TABLE).empty();
|
||||
togglePlaylists();
|
||||
var tracks = getPlaylistTracks(uri);
|
||||
//load from cache
|
||||
if (tracks) {
|
||||
var tracks = getPlaylistTracks(uri).then(function(tracks) {
|
||||
resultsToTables(tracks, PLAYLIST_TABLE, uri);
|
||||
return;
|
||||
} else {
|
||||
showLoading(true);
|
||||
}
|
||||
});
|
||||
showLoading(false);
|
||||
updatePlayIcons(uri);
|
||||
$('#playlistslist li a').each(function() {
|
||||
$(this).removeClass("playlistactive");
|
||||
@ -266,10 +262,6 @@ function showTracklist(uri) {
|
||||
}
|
||||
});
|
||||
// scrollToTracklist();
|
||||
//lookup recent tracklist
|
||||
mopidy.playlists.getItems(uri).then(function(refs) {
|
||||
processPlaylistItems({'uri':uri, 'items':refs});
|
||||
}, console.error);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@ -199,10 +199,10 @@ function processPlaylistItems(resultDict) {
|
||||
for (i = 0; i < trackUris.length; i++) {
|
||||
playlists[newplaylisturi].tracks.push(tracks[trackUris[i]][0]);
|
||||
}
|
||||
resultsToTables(playlists[newplaylisturi].tracks, PLAYLIST_TABLE, newplaylisturi);
|
||||
showLoading(false);
|
||||
return playlists[newplaylisturi].tracks;
|
||||
});
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/********************************************************
|
||||
|
||||
Loading…
Reference in New Issue
Block a user