diff --git a/mopidy_musicbox_webclient/static/index.html b/mopidy_musicbox_webclient/static/index.html index 29a7877..b50ffee 100644 --- a/mopidy_musicbox_webclient/static/index.html +++ b/mopidy_musicbox_webclient/static/index.html @@ -480,7 +480,6 @@ - diff --git a/mopidy_musicbox_webclient/static/js/controls.js b/mopidy_musicbox_webclient/static/js/controls.js index aa4af80..186caab 100644 --- a/mopidy_musicbox_webclient/static/js/controls.js +++ b/mopidy_musicbox_webclient/static/js/controls.js @@ -538,6 +538,21 @@ function getFavourites() { }); } +function addToFavourites(newTracks) { + getFavourites().then(function(favourites) { + if (favourites) { + if (favourites.tracks) { + Array.prototype.push.apply(favourites.tracks, newTracks) + } else { + favourites.tracks = [newTracks]; + } + mopidy.playlists.save({'playlist': favourites}).then(function(s) { + showFavourites(); + }); + } + }); +} + function addFavourite(uri, name) { var uri = uri || $('#streamuriinput').val().trim(); var name = name || $('#streamnameinput').val().trim(); @@ -548,19 +563,7 @@ function addFavourite(uri, name) { if (name) { newTracks[0].name = name; // User overrides name. } - getFavourites().then(function(favourites) { - if (favourites) { - if (favourites.tracks) { - //Array.prototype.push.apply(favourites.tracks, newTracks) - favourites.tracks.push(newTracks[0]); - } else { - favourites.tracks = [newTracks[0]]; - } - mopidy.playlists.save({'playlist': favourites}).then(function(s) { - showFavourites(); - }); - } - }); + addToFavourites(newTracks); } else { if (newTracks.length == 0) { console.log('No tracks to add'); @@ -587,9 +590,15 @@ function deleteFavourite(index) { function showFavourites() { $('#streamuristable').empty(); + $.cookie.json = true; + if ($.cookie('streamUris')) { + toast('Converting streamUris...'); + upgradeStreamUrisToFavourites(); + } getFavourites().then(function(favourites) { if (favourites && favourites.tracks) { tracks = favourites.tracks; + var tmp = ''; var child = ''; for (var i = 0; i < tracks.length; i++) { @@ -604,6 +613,36 @@ function showFavourites() { }); } +function upgradeStreamUrisToFavourites() { + $.cookie.json = true; + var streamUris = $.cookie('streamUris'); // Read the cookie. + if (streamUris) { + var uris = []; // Prepare a list of uris to lookup. + for (var key in streamUris) { + var rs = streamUris[key]; + if (rs) { + uris.push(rs[1]); + } + } + mopidy.library.lookup({'uris': uris}).then(function(results) { + var tracks = []; // Prepare a list of tracks to add. + for (var key in streamUris) { + var rs = streamUris[key]; + if (rs) { + var track = results[rs[1]][0]; + track.name = rs[0] || track.name; // Use custom name if provided. + tracks.push(track); + } + } + addToFavourites(tracks); + $.cookie('streamUris', null); // Delete the cookie now we're done. + console.log(tracks.length + " streamUris added to favourites"); + }); + } else { + console.log("No streamUris cookie found"); + } +} + function haltSystem() { $.post("/settings/shutdown"); toast('Stopping system...', 10000); diff --git a/mopidy_musicbox_webclient/static/js/streamuris.js b/mopidy_musicbox_webclient/static/js/streamuris.js deleted file mode 100644 index 1713e63..0000000 --- a/mopidy_musicbox_webclient/static/js/streamuris.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Default streamuris which appear in the webinterface. Edit if you like. - * Take care when editting. Only edit the stuff between '' - * And don't use the default Windows Notepad for this (use Notepad++ on Windows) - */ - -var streamUris = []; -//fill with defaults -streamUris.push(['NPR 24', 'http://nprdmp.ic.llnwd.net/stream/nprdmp_live01_mp3']); -streamUris.push(['3FM Dutch', 'http://icecast.omroep.nl/3fm-bb-mp3']); -streamUris.push(['BBC WorldService', 'http://vprbbc.streamguys.net:8000/vprbbc24.mp3']); -streamUris.push(['Arrow Jazz', 'http://81.173.3.132:8082']); -streamUris.push(['Queen Live Aid at Wembley (YouTube)', 'yt:http://www.youtube.com/watch?v=eQsM6u0a038']); -streamUris.push(['Groove Salad - Soma FM', 'http://somafm.com/groovesalad.pls']); -streamUris.push(['Kiss FM Berlin', 'http://stream.kissfm.de/kissfm/mp3-128/internetradio/']); -streamUris.push(['Muse - Newborn (SoundCloud)', 'sc:https://soundcloud.com/muse/01-new-born']); -streamUris.push(['Pinguin Radio', 'http://pr320.pinguinradio.com/listen.pls']); \ No newline at end of file