From 64f927d489fa6f0edfe47e9c6105198c7f2a1c89 Mon Sep 17 00:00:00 2001
From: kaliko <kaliko@azylum.org>
Date: Sun, 8 Feb 2015 17:19:17 +0100
Subject: [PATCH] Fixed a potential infinite loop

---
 sima/lib/webserv.py | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/sima/lib/webserv.py b/sima/lib/webserv.py
index 3a484c2..0a04ddb 100644
--- a/sima/lib/webserv.py
+++ b/sima/lib/webserv.py
@@ -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: '
-- 
2.39.5