Gracefully handle a disabled m3u extension.
This commit is contained in:
parent
8075bc3a0e
commit
97c8817335
30
mopidy_musicbox_webclient/static/js/controls.js
vendored
30
mopidy_musicbox_webclient/static/js/controls.js
vendored
@ -504,22 +504,35 @@ function getCurrentlyPlaying() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getUriSchemes() {
|
||||||
|
uriSchemes = {};
|
||||||
|
return mopidy.getUriSchemes().then(function(schemes) {
|
||||||
|
for (var i = 0; i < schemes.length; i++) {
|
||||||
|
uriSchemes[schemes[i].toLowerCase()] = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function getPlaylistByName(name, scheme, create) {
|
function getPlaylistByName(name, scheme, create) {
|
||||||
var uri_scheme = scheme || '';
|
var uri_scheme = scheme || '';
|
||||||
var uri = '';
|
var uri = '';
|
||||||
|
if (uri_scheme && !uriSchemes[uri_scheme]) {
|
||||||
|
return Mopidy.when(false);
|
||||||
|
}
|
||||||
return mopidy.playlists.asList().catch(console.error.bind(console)).then(function(plists) {
|
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 ((plists[i].name === name) && (scheme === '' || getScheme(plists[i].uri) === scheme)) {
|
if ((plists[i].name === name) && (uri_scheme === '' || getScheme(plists[i].uri) === uri_scheme)) {
|
||||||
return plists[i];
|
return plists[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (create) {
|
if (create) {
|
||||||
return mopidy.playlists.create({'name': name, 'uri_scheme': scheme}).done(function(plist) {
|
return mopidy.playlists.create({'name': name, 'uri_scheme': uri_scheme}).done(function(plist) {
|
||||||
console.log("Created playlist '%s'", plist.name);
|
console.log("Created playlist '%s'", plist.name);
|
||||||
return plist;
|
return plist;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.log("Can't find playist '%s", name);
|
console.log("Can't find playist '%s", name);
|
||||||
|
return Mopidy.when(false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -534,12 +547,15 @@ 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 getPlaylistFull(playlist.uri);
|
if (playlist) {
|
||||||
|
return getPlaylistFull(playlist.uri);
|
||||||
|
}
|
||||||
|
return Mopidy.when(false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function addToFavourites(newTracks) {
|
function addToFavourites(newTracks) {
|
||||||
getFavourites().then(function(favourites) {
|
getFavourites().catch(console.error.bind(console)).then(function(favourites) {
|
||||||
if (favourites) {
|
if (favourites) {
|
||||||
if (favourites.tracks) {
|
if (favourites.tracks) {
|
||||||
Array.prototype.push.apply(favourites.tracks, newTracks)
|
Array.prototype.push.apply(favourites.tracks, newTracks)
|
||||||
@ -591,12 +607,16 @@ function deleteFavourite(index) {
|
|||||||
function showFavourites() {
|
function showFavourites() {
|
||||||
$('#streamuristable').empty();
|
$('#streamuristable').empty();
|
||||||
getFavourites().then(function(favourites) {
|
getFavourites().then(function(favourites) {
|
||||||
|
if (!favourites) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
var tmp = '';
|
var tmp = '';
|
||||||
|
|
||||||
$.cookie.json = true;
|
$.cookie.json = true;
|
||||||
if ($.cookie('streamUris')) {
|
if ($.cookie('streamUris')) {
|
||||||
tmp = '<button class="btn" style="padding: 5px; width: 100%" type="button" onclick="return upgradeStreamUrisToFavourites();">Convert StreamUris</button>'
|
tmp = '<button class="btn" style="padding: 5px; width: 100%" type="button" onclick="return upgradeStreamUrisToFavourites();">Convert StreamUris</button>'
|
||||||
}
|
}
|
||||||
if (favourites && favourites.tracks) {
|
if (favourites.tracks) {
|
||||||
var child = '';
|
var child = '';
|
||||||
for (var i = 0; i < favourites.tracks.length; i++) {
|
for (var i = 0; i < favourites.tracks.length; i++) {
|
||||||
child = '<li><span class="ui-icon ui-icon-delete ui-icon-shadow" style="float:right; margin: .5em; margin-top: .8em;"><a href="#" onclick="return deleteFavourite(\'' + i + '\');"> </a></span>' +
|
child = '<li><span class="ui-icon ui-icon-delete ui-icon-shadow" style="float:right; margin: .5em; margin-top: .8em;"><a href="#" onclick="return deleteFavourite(\'' + i + '\');"> </a></span>' +
|
||||||
|
|||||||
@ -36,6 +36,7 @@ var playlistslistScroll;
|
|||||||
|
|
||||||
var STREAMS_PLAYLIST_NAME = '[Radio Streams]';
|
var STREAMS_PLAYLIST_NAME = '[Radio Streams]';
|
||||||
var STREAMS_PLAYLIST_SCHEME = 'm3u';
|
var STREAMS_PLAYLIST_SCHEME = 'm3u';
|
||||||
|
var uriSchemes = {};
|
||||||
|
|
||||||
//array of cached playlists (not only user-playlists, also search, artist, album-playlists)
|
//array of cached playlists (not only user-playlists, also search, artist, album-playlists)
|
||||||
var playlists = {};
|
var playlists = {};
|
||||||
|
|||||||
@ -231,7 +231,9 @@ function initSocketevents() {
|
|||||||
getCurrentPlaylist();
|
getCurrentPlaylist();
|
||||||
updateStatusOfAll();
|
updateStatusOfAll();
|
||||||
getPlaylists();
|
getPlaylists();
|
||||||
showFavourites();
|
getUriSchemes().then(function() {
|
||||||
|
showFavourites();
|
||||||
|
});
|
||||||
getBrowseDir();
|
getBrowseDir();
|
||||||
getSearchSchemes();
|
getSearchSchemes();
|
||||||
showLoading(false);
|
showLoading(false);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user