]> kaliko git repositories - mpd-sima.git/blobdiff - sima/mpdclient.py
PlayerError inherit from MPDError instead of plain Exception
[mpd-sima.git] / sima / mpdclient.py
index 0883b009e8f45826226f66694f9c7b3ba754a634..1d86813b20538938d78c0db76d2070fe7736e8e4 100644 (file)
@@ -32,7 +32,7 @@ from .lib.simastr import SimaStr
 from .utils.leven import levenshtein_ratio
 
 
-class PlayerError(Exception):
+class PlayerError(MPDError):
     """Fatal error in the player."""
 
 
@@ -316,7 +316,7 @@ class MPD(MPDClient):
         for name in artist.names:
             tracks |= set(self.find('artist', name))
         # album blocklist
-        albums = {Album(trk.album, mbid=trk.musicbrainz_albumid)
+        albums = {Album(trk.Album.name, mbid=trk.musicbrainz_albumid)
                   for trk in tracks}
         bl_albums = {Album(a.get('album'), mbid=a.get('musicbrainz_album'))
                      for a in self.database.view_bl() if a.get('album')}
@@ -517,6 +517,8 @@ class MPD(MPDClient):
         candidates = []
         for album in albums:
             album_trks = self.find_tracks(album)
+            if not album_trks:  # find_track result can be empty, blocklist applied
+                continue
             album_artists = {tr.albumartist for tr in album_trks if tr.albumartist}
             if album.Artist.names & album_artists:
                 candidates.append(album)
@@ -548,9 +550,6 @@ class MPD(MPDClient):
                 self.log.debug('"%s" probably not an album of "%s" (ratio=%.2f)',
                                album, artist, ratio)
             continue
-        for alb in albums:
-            if self.database.get_bl_album(album, add=False):
-                candidates.remove(album)
         return candidates
 # #### / Search Methods ###