def fetch_artist_data(self, artist): """ Initiate the fetching of all artist data. Fetches artist info, similar artists, artist top albums and top tracks. Downloads XML files from last.fm and saves as parsed DOM documents in self.artist dictionary. Must be called before any of the get_* methods. """ self.current_artist = artist if LastFM.user_has_account() is False: self.error = LASTFM_NO_ACCOUNT_ERROR self.emit('artist-info-ready') return self.error = None artist = urllib.parse.quote_plus(artist) self.fetched = 0 for key, value in self.artist.items(): print("search") cachekey = "lastfm:artist:%sjson:%s:%s" % (value['function'], artist, value['lang']) url = '%s?method=artist.%s&artist=%s&limit=10&api_key=%s&format=json&lang=%s' % ( LastFM.API_URL, value['function'], artist, LastFM.API_KEY, value['lang']) print("fetching %s" % url) value['cache'].fetch(cachekey, url, self.fetch_artist_data_cb, value)
def fetch_artist_data(self, artist): """ Initiate the fetching of all artist data. Fetches artist info, similar artists, artist top albums and top tracks. Downloads XML files from last.fm and saves as parsed DOM documents in self.artist dictionary. Must be called before any of the get_* methods. """ self.current_artist = artist if LastFM.user_has_account() is False: self.error = LASTFM_NO_ACCOUNT_ERROR self.emit("artist-info-ready") return self.error = None artist = urllib.parse.quote_plus(artist) self.fetched = 0 for key, value in self.artist.items(): print("search") cachekey = "lastfm:artist:%sjson:%s:%s" % (value["function"], artist, value["lang"]) url = "%s?method=artist.%s&artist=%s&limit=10&api_key=%s&format=json&lang=%s" % ( LastFM.API_URL, value["function"], artist, LastFM.API_KEY, value["lang"], ) print("fetching %s" % url) value["cache"].fetch(cachekey, url, self.fetch_artist_data_cb, value)
def fetch_album_list (self, artist): if LastFM.user_has_account() is False: self.error = LASTFM_NO_ACCOUNT_ERROR self.emit ('albums-ready') return self.artist = artist qartist = urllib.parse.quote_plus(artist) self.error = None url = "%s?method=artist.gettopalbums&artist=%s&api_key=%s&format=json" % ( LastFM.API_URL, qartist, LastFM.API_KEY) print (url) cachekey = 'lastfm:artist:gettopalbumsjson:%s' % qartist self.ranking_cache.fetch(cachekey, url, self.parse_album_list, artist)
def fetch_album_list(self, artist): if LastFM.user_has_account() is False: self.error = LASTFM_NO_ACCOUNT_ERROR self.emit('albums-ready') return self.artist = artist qartist = urllib.parse.quote_plus(artist) self.error = None url = "%s?method=artist.gettopalbums&artist=%s&api_key=%s&format=json" % ( LastFM.API_URL, qartist, LastFM.API_KEY) print(url) cachekey = 'lastfm:artist:gettopalbumsjson:%s' % qartist self.ranking_cache.fetch(cachekey, url, self.parse_album_list, artist)
def fetch_album_list(self, artist): if LastFM.user_has_account() is False: self.error = LASTFM_NO_ACCOUNT_ERROR self.emit("albums-ready") return cl = CoverLocale() lang = cl.get_locale()[:2] self.artist = artist qartist = urllib.parse.quote_plus(artist) self.error = None url = "%s?method=artist.gettopalbums&artist=%s&api_key=%s&format=json&lang=%s" % ( LastFM.API_URL, qartist, LastFM.API_KEY, lang, ) print(url) cachekey = "lastfm:artist:gettopalbumsjson:%s" % qartist self.ranking_cache.fetch(cachekey, url, self.parse_album_list, artist)