Merge remote-tracking branch 'upstream/develop' into enhance/slider_handle

This commit is contained in:
jcass 2016-01-24 09:42:14 +02:00
commit ebe6891ea6
5 changed files with 37 additions and 26 deletions

View File

@ -517,9 +517,11 @@ function getCurrentlyPlaying() {
} }
function getPlaylistByName(name, scheme, create) { 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++) { 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]; 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() { function getFavourites() {
return getPlaylistByName(STREAMS_PLAYLIST_NAME, return getPlaylistByName(STREAMS_PLAYLIST_NAME,
STREAMS_PLAYLIST_SCHEME, STREAMS_PLAYLIST_SCHEME,
true).then(function(playlist) { true).then(function(playlist) {
return playlist; return getPlaylistFull(playlist.uri);
}); });
} }

View File

@ -425,7 +425,12 @@ function playlisttotable(pl, target, uri) {
function getPlaylistTracks(uri) { function getPlaylistTracks(uri) {
if (playlists[uri] && playlists[uri].tracks) { 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) { function getTracksFromUri(uri, full_track_data) {
full_track_data = full_track_data || false; var returnTracksOrUris = function(tracks) {
var tracks = getPlaylistTracks(uri); return (full_track_data || false) ? tracks : getUris(tracks);
if (!tracks && customTracklists[uri]) {
tracks = customTracklists[uri];
} }
if (full_track_data) { if (customTracklists[uri]) {
return tracks; return returnTracksOrUris(customTracklists[uri]);
} else { } else if (playlists[uri] && playlists[uri].tracks) {
return getUris(tracks); return returnTracksOrUris(playlists[uri].tracks);
} }
return [];
} }
//convert time to human readable format //convert time to human readable format

View File

@ -250,14 +250,10 @@ function togglePlaylists() {
function showTracklist(uri) { function showTracklist(uri) {
$(PLAYLIST_TABLE).empty(); $(PLAYLIST_TABLE).empty();
togglePlaylists(); togglePlaylists();
var tracks = getPlaylistTracks(uri); var tracks = getPlaylistTracks(uri).then(function(tracks) {
//load from cache
if (tracks) {
resultsToTables(tracks, PLAYLIST_TABLE, uri); resultsToTables(tracks, PLAYLIST_TABLE, uri);
return; });
} else { showLoading(false);
showLoading(true);
}
updatePlayIcons(uri); updatePlayIcons(uri);
$('#playlistslist li a').each(function() { $('#playlistslist li a').each(function() {
$(this).removeClass("playlistactive"); $(this).removeClass("playlistactive");
@ -266,10 +262,6 @@ function showTracklist(uri) {
} }
}); });
// scrollToTracklist(); // scrollToTracklist();
//lookup recent tracklist
mopidy.playlists.getItems(uri).then(function(refs) {
processPlaylistItems({'uri':uri, 'items':refs});
}, console.error);
return false; return false;
} }

View File

@ -183,6 +183,11 @@ function processGetPlaylists(resultArr) {
* process results of a returned list of playlist track refs * process results of a returned list of playlist track refs
*********************************************************/ *********************************************************/
function processPlaylistItems(resultDict) { function processPlaylistItems(resultDict) {
if (resultDict.items.length == 0) {
console.log('Playlist', resultDict.uri, 'is empty');
showLoading(false);
return;
}
var trackUris = [] var trackUris = []
for (i = 0; i < resultDict.items.length; i++) { for (i = 0; i < resultDict.items.length; i++) {
trackUris.push(resultDict.items[i].uri); trackUris.push(resultDict.items[i].uri);
@ -194,9 +199,10 @@ function processPlaylistItems(resultDict) {
for (i = 0; i < trackUris.length; i++) { for (i = 0; i < trackUris.length; i++) {
playlists[newplaylisturi].tracks.push(tracks[trackUris[i]][0]); playlists[newplaylisturi].tracks.push(tracks[trackUris[i]][0]);
} }
resultsToTables(playlists[newplaylisturi].tracks, PLAYLIST_TABLE, newplaylisturi);
showLoading(false); showLoading(false);
return playlists[newplaylisturi].tracks;
}); });
return false;
} }
/******************************************************** /********************************************************

View File

@ -5,11 +5,11 @@ envlist = py27, flake8
sitepackages = true sitepackages = true
deps = deps =
mock mock
mopidy==dev mopidy
pytest pytest
pytest-cov pytest-cov
pytest-xdist pytest-xdist
install_command = pip install --allow-unverified=mopidy --pre {opts} {packages} install_command = pip install {opts} {packages}
commands = commands =
py.test \ py.test \
--basetemp={envtmpdir} \ --basetemp={envtmpdir} \