+ def find_top(self, artists):
+ """
+ find top tracks for artists in artists list.
+ """
+ self.to_add = list()
+ nbtracks_target = self.plugin_conf.getint('track_to_add')
+ webserv = self.ws()
+ for artist in artists:
+ artist = Artist(name=artist)
+ if len(self.to_add) == nbtracks_target:
+ return True
+ self.log.info('Looking for a top track for {0}'.format(artist))
+ titles = deque()
+ try:
+ titles = [t for t in webserv.get_toptrack(artist)]
+ except WSError as err:
+ self.log.warning('{0}: {1}'.format(self.ws.name, err))
+ if self.ws.ratelimit:
+ self.log.info('{0.name} ratelimit: {0.ratelimit}'.format(self.ws))
+ for trk in titles:
+ found = self.player.fuzzy_find_track(artist.name, trk.title)
+ if found:
+ self.log.debug('{0}'.format(found[0]))
+ if self.filter_track(found):
+ break
+