/** * @author Wouter van Wijk */ API_KEY = 'b6d34c3af91d62ab0ae00ab1b6fa8733'; API_SECRET = '2c631802c2285d5d5d1502462fe42a2b'; var fmcache; var lastfm; $(window).load(function () { // create a Cache object fmcache = new LastFMCache(); // create a LastFM object lastfm = new LastFM({ apiKey : API_KEY, apiSecret : API_SECRET, cache : fmcache }); }); function getCover(uri, images, size) { var defUrl = 'images/default_cover.png'; $(images).attr('src', defUrl); if (!uri) { return; } mopidy.library.getImages({'uris': [uri]}).then(function(imageResults) { var uri = Object.keys(imageResults)[0]; if (imageResults[uri].length > 0) { $(images).attr('src', imageResults[uri][0].uri); } else { // Also check deprecated 'album.images' in case backend does not // implement mopidy.library.getImages yet... getCoverFromAlbum(uri, images, size); } }); } // Note that this approach has been deprecated in Mopidy // TODO: Remove when Mopidy no longer supports getting images // with 'album.images'. function getCoverFromAlbum(uri, images, size) { mopidy.library.lookup({'uris': [uri]}).then(function(resultDict) { var uri = Object.keys(resultDict)[0]; var track = resultDict[uri][0]; if (track.album && track.album.images && (track.album.images.length > 0) ) { $(images).attr('src', track.album.images[0]); } else { // Fallback to last.fm getCoverFromLastFm(track, images, size); } }); } function getCoverFromLastFm(track, images, size) { var defUrl = 'images/default_cover.png'; if (!(track.album || track.artist)) { return; } var albumname = track.album.name || ''; var artistname = ''; if ( track.album.artists && (track.album.artists.length > 0) ) { // First look for the artist in the album artistname = track.album.artists[0].name; } else if (track.artists && (track.artists.length > 0) ) { // Fallback to using artists for specific track artistname = track.artists[0].name; } lastfm.album.getInfo( {artist: artistname, album: albumname}, { success: function(data) { for (var i = 0; i < data.album.image.length; i++) { if ( data.album.image[i].size == size) { $(images).attr('src', data.album.image[i]['#text'] || defUrl); } } } }); } function getArtistImage(nwartist, image, size) { var defUrl = 'images/user_24x32.png'; lastfm.artist.getInfo({artist: nwartist}, {success: function(data){ for (var i = 0; i < data.artist.image.length; i++) { if ( data.artist.image[i].size == size) { $(image).attr('src', data.artist.image[i]['#text'] || defUrl); } } }}); }