Tidied up handling when add by playlist fails.
Constant to define mbw URI scheme and get scheme helper.
This commit is contained in:
parent
92fe64ba1d
commit
4087cf9379
36
mopidy_musicbox_webclient/static/js/controls.js
vendored
36
mopidy_musicbox_webclient/static/js/controls.js
vendored
@ -121,20 +121,20 @@ function playTrack(action) {
|
||||
*/
|
||||
function playTrackByUri(track_uri, playlist_uri) {
|
||||
function findAndPlayTrack(tltracks) {
|
||||
// console.log('fa', tltracks, track_uri);
|
||||
if (tltracks == []) { return;}
|
||||
// Find track that was selected
|
||||
for (var selected = 0; selected < tltracks.length; selected++) {
|
||||
if (tltracks[selected].track.uri == track_uri) {
|
||||
mopidy.playback.play(tltracks[selected]);
|
||||
return;
|
||||
if (tltracks.length > 0) {
|
||||
// Find track that was selected
|
||||
for (var selected = 0; selected < tltracks.length; selected++) {
|
||||
if (tltracks[selected].track.uri == track_uri) {
|
||||
mopidy.playback.play(tltracks[selected]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log('Failed to play selected track ', track_uri);
|
||||
console.error('Failed to find and play selected track ', track_uri);
|
||||
return;
|
||||
}
|
||||
|
||||
// Stop directly, for user feedback
|
||||
mopidy.playback.stop();
|
||||
mopidy.tracklist.clear();
|
||||
|
||||
//this is deprecated, remove when popuptracks is removed completly
|
||||
@ -144,19 +144,15 @@ function playTrackByUri(track_uri, playlist_uri) {
|
||||
|
||||
toast('Loading...');
|
||||
|
||||
var func;
|
||||
func = mopidy.tracklist.add(null, null, playlist_uri);
|
||||
func.then(
|
||||
function(tltracks) {
|
||||
//check if tltracks is filled, some backends (gmusic, m3u) do not support adding by uri, it seems
|
||||
if (tltracks.length == 0) {
|
||||
console.log('failed to add by playlist, falling back');
|
||||
var tracks = getTracksFromUri(playlist_uri);
|
||||
mopidy.tracklist.add(null, null, null, tracks).then(findAndPlayTrack);
|
||||
}
|
||||
mopidy.tracklist.add(null, null, playlist_uri).then(function(tltracks) {
|
||||
// Can fail for all sorts of reasons. If so, just add individually.
|
||||
if (tltracks.length == 0) {
|
||||
var trackUris = getTracksFromUri(playlist_uri, false);
|
||||
mopidy.tracklist.add(null, null, null, trackUris).then(findAndPlayTrack);
|
||||
} else {
|
||||
findAndPlayTrack(tltracks);
|
||||
}
|
||||
).then(getCurrentPlaylist()); // Updates some state
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@ -60,6 +60,8 @@ SEARCH_ALBUM_TABLE = '#albumresulttable';
|
||||
SEARCH_ARTIST_TABLE = '#artistresulttable';
|
||||
SEARCH_TRACK_TABLE = '#trackresulttable';
|
||||
|
||||
URI_SCHEME = 'mbw';
|
||||
|
||||
PLAY_NOW = 0;
|
||||
PLAY_NEXT = 1;
|
||||
ADD_THIS_BOTTOM = 2;
|
||||
@ -503,15 +505,18 @@ function validServiceUri(str) {
|
||||
return validUri(str) || isServiceUri(str);
|
||||
}
|
||||
|
||||
function getSchemeFromUri(uri) {
|
||||
return uri.split(":")[0].toLowerCase();
|
||||
}
|
||||
|
||||
function isStreamUri(uri) {
|
||||
var uriSplit = uri.split(":");
|
||||
var a = validUri(uri);
|
||||
var b = radioExtensionsList.indexOf(uriSplit[0].toLowerCase()) >= 0;
|
||||
var b = radioExtensionsList.indexOf(getSchemeFromUri(uri)) >= 0;
|
||||
return a || b;
|
||||
}
|
||||
|
||||
function getMediaClass(uri) {
|
||||
var uriSplit = uri.split(":")[0].toLowerCase();
|
||||
var uriSplit = getSchemeFromUri(uri);
|
||||
for (var i = 0; i < uriClassList.length; i++) {
|
||||
if (uriSplit == uriClassList[i][0]) {
|
||||
return "fa " + uriClassList[i][1];
|
||||
@ -521,7 +526,7 @@ function getMediaClass(uri) {
|
||||
}
|
||||
|
||||
function getMediaHuman(uri) {
|
||||
var uriSplit = uri.split(":")[0].toLowerCase();
|
||||
var uriSplit = getSchemeFromUri(uri);
|
||||
for (var i = 0; i < uriHumanList.length; i++) {
|
||||
if (uriSplit == uriHumanList[i][0]) {
|
||||
return uriHumanList[i][1];
|
||||
@ -531,7 +536,7 @@ function getMediaHuman(uri) {
|
||||
}
|
||||
|
||||
function isServiceUri(uri) {
|
||||
var uriSplit = uri.split(":")[0].toLowerCase();
|
||||
var uriSplit = getSchemeFromUri(uri);
|
||||
var retVal = false;
|
||||
|
||||
for (var i = 0; i < uriClassList.length; i++) {
|
||||
|
||||
@ -23,10 +23,10 @@ function initSearch() {
|
||||
document.activeElement.blur();
|
||||
$("input").blur();
|
||||
|
||||
delete customTracklists['mbw:allresultscache'];
|
||||
delete customTracklists['mbw:artistresultscache'];
|
||||
delete customTracklists['mbw:albumresultscache'];
|
||||
delete customTracklists['mbw:trackresultscache'];
|
||||
delete customTracklists[URI_SCHEME+':allresultscache'];
|
||||
delete customTracklists[URI_SCHEME+':artistresultscache'];
|
||||
delete customTracklists[URI_SCHEME+':albumresultscache'];
|
||||
delete customTracklists[URI_SCHEME+':trackresultscache'];
|
||||
$("#searchresults").hide();
|
||||
|
||||
if (searchService != 'all') {
|
||||
@ -113,7 +113,7 @@ function processSearchResults(resultArr) {
|
||||
|
||||
|
||||
|
||||
customTracklists['mbw:trackresultscache'] = results.tracks;
|
||||
customTracklists[URI_SCHEME+':trackresultscache'] = results.tracks;
|
||||
|
||||
if (emptyResult) {
|
||||
toast('No results');
|
||||
@ -196,8 +196,8 @@ function processSearchResults(resultArr) {
|
||||
$('#expandsearch').show();
|
||||
|
||||
// Track results
|
||||
// playlisttotable(results.tracks, SEARCH_TRACK_TABLE, 'mbw:trackresultscache');
|
||||
resultsToTables(results.tracks, SEARCH_TRACK_TABLE, 'mbw:trackresultscache');
|
||||
// playlisttotable(results.tracks, SEARCH_TRACK_TABLE, URI_SCHEME+':trackresultscache');
|
||||
resultsToTables(results.tracks, SEARCH_TRACK_TABLE, URI_SCHEME+':trackresultscache');
|
||||
|
||||
showLoading(false);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user