Problems with jQuery + get.JSON + Last.FM

I am trying to customize this script so that my favorite artists are displayed instead of the last custom tracks.

This is what I came up with, however it does not work. I thought it would be easy to change the attributes of the feed, but obviously not ...

(function($){ $.fn.lastFM = function(options) { var defaults = { number: 10, username: 'willblackmore', apikey: '96e0589327a3f120074f74dbc8ec6443', artSize: 'medium', noart: 'images/noartwork.gif', onComplete: function(){} }, settings = $.extend({}, defaults, options); var lastUrl = 'http://ws.audioscrobbler.com/2.0/?method=user.gettopartists&user='+settings.username+'&api_key='+settings.apikey+'+'&limit='+settings.number+'&format=json&callback=?'; var $this = $(this); var container = $this.html(); $this.children(':first').remove(); if(settings.artSize == 'small'){imgSize = 0} if(settings.artSize == 'medium'){imgSize = 1} if(settings.artSize == 'large'){imgSize = 2} this.each(function() { $.getJSON(lastUrl, function(data){ $.each(data.topartists.artist, function(i, item){ if(item.image[1]['#text'] == ''){ art = settings.noart; }else{ art = stripslashes(item.image[imgSize]['#text']); } url = stripslashes(item.url); song = item.name; artist = item.playcount['#text']; album = item.streamable['#text']; $this.append(container); var $current = $this.children(':eq('+i+')'); $current.find('[class=lfm_song]').append(song); $current.find('[class=lfm_artist]').append(artist); $current.find('[class=lfm_album]').append(album); $current.find('[class=lfm_art]').append("<img src='"+art+"' alt='Artwork for "+album+"'/>"); $current.find('a').attr('href', url).attr('title', 'Listen to '+song+' on Last.FM').attr('target', '_blank'); //callback if(i==(settings.number-1)){ settings.onComplete.call(this); } }); }); }); }; //Clean up the URL's function stripslashes( str ) { return (str+'').replace(/\0/g, '0').replace(/\\([\\'"])/g, '$1'); } })(jQuery);` 

Any ideas? Thanks.

+2
json jquery
source share
1 answer

You have entered your URL incorrectly. It's really:

 var lastUrl = 'http://ws.audioscrobbler.com/2.0/?method=user.gettopartists&user=' + settings.username + '&api_key=' + settings.apikey + '&limit=' + settings.number + '&format=json&callback=?'; 

I am not sure that he fixed your problem since you did not provide enough details (errors, etc.).

+2
source share

All Articles