]> kaliko git repositories - mpd-sima.git/commitdiff
Fixed a potential infinite loop
authorkaliko <kaliko@azylum.org>
Sun, 8 Feb 2015 16:19:17 +0000 (17:19 +0100)
committerkaliko <kaliko@azylum.org>
Sun, 8 Feb 2015 16:19:17 +0000 (17:19 +0100)
sima/lib/webserv.py

index 3a484c2fde86cfbe5915124a56f4185cd028abcc..0a04ddb5c505ae69464285d75aaf9209e70cca9b 100644 (file)
@@ -168,7 +168,7 @@ class WebService(Plugin):
                 results.append(res)
         return results
 
-    def ws_similar_artists(self, artist=None):
+    def ws_similar_artists(self, artist):
         """
         Retrieve similar artists from WebServive.
         """
@@ -179,9 +179,13 @@ class WebService(Plugin):
         try:
             [as_art.append(art) for art in as_artists]
         except WSNotFound as err:
-            if artist.mbid:
-                return self.ws_similar_artists(Artist(name=artist.name))
             self.log.warning('{}: {}'.format(self.ws.name, err))
+            if artist.mbid:
+                self.log.debug('Trying without MusicBrainzID')
+                try:
+                    return self.ws_similar_artists(Artist(name=artist.name))
+                except WSNotFound as err:
+                    self.log.debug('{}: {}'.format(self.ws.name, err))
         except WSError as err:
             self.log.warning('{}: {}'.format(self.ws.name, err))
         if as_art:
@@ -264,9 +268,6 @@ class WebService(Plugin):
         if not ret:
             self.log.warning('Got nothing from music library.')
             return []
-        # WARNING:
-        #   * operation on set will not match against aliases
-        #   * composite set w/ mbid set and whitout won't match either
         queued_artists = MetaContainer([trk.Artist for trk in self.player.queue])
         if ret & queued_artists:
             self.log.debug('Removing already queued artists: '