X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fmpdclient.py;h=ea6132c457ff5825e9d8a91d02b18aac01645c3a;hb=101e516622d9a3dc9b88bc91ee1be65423b705e7;hp=0784fa6935c28d5d9490f77c6e62ea8bb2476990;hpb=707eac72ccee340ed229aa214a986caccb38f363;p=mpd-sima.git diff --git a/sima/mpdclient.py b/sima/mpdclient.py index 0784fa6..ea6132c 100644 --- a/sima/mpdclient.py +++ b/sima/mpdclient.py @@ -92,7 +92,7 @@ def blacklist(artist=False, album=False, track=False): if track and cls.database.get_bl_album(elem, add_not=True): # filter album as well in track mode # (artist have already been) - cls.log.debug('Blacklisted alb. "{0.album}"'.format(elem)) + cls.log.debug('Blacklisted alb. "%s"', elem) continue results.append(elem) return results @@ -251,9 +251,9 @@ class MPD(MPDClient): super().__getattr__('add')(payload.file) elif isinstance(payload, list): self.command_list_ok_begin() - for tr in payload: # TODO: use send command here + for tr in payload: self.add(tr) - results = client.command_list_end() + self.command_list_end() else: self.log.error('Cannot add %s', payload) @@ -312,23 +312,23 @@ class MPD(MPDClient): tracks = set() if artist.mbid: tracks |= set(self.find('musicbrainz_artistid', artist.mbid)) - for name in artist.names: + for name in artist.names_sz: tracks |= set(self.find('artist', name)) return list(tracks) def _find_alb(self, album): if not hasattr(album, 'artist'): - PlayerError('Album object have no artist attribute') + raise PlayerError('Album object have no artist attribute') albums = [] if self.use_mbid and album.mbid: filt = f'(MUSICBRAINZ_ALBUMID == {album.mbid})' albums = self.find(filt) # Now look for album with no MusicBrainzIdentifier if not albums and album.artist.mbid and self.use_mbid: # Use album artist MBID if possible - filt = f"((MUSICBRAINZ_ARTISTID == '{album.artist.mbid}') AND (album == '{album!s}'))" + filt = f"((MUSICBRAINZ_ARTISTID == '{album.artist.mbid}') AND (album == '{album.name_sz}'))" albums = self.find(filt) if not albums: # Falls back to (album)?artist/album name - filt = f"((albumartist == '{album.artist!s}') AND (album == '{album!s}'))" + filt = f"((albumartist == '{album.artist!s}') AND (album == '{album.name_sz}'))" albums = self.find(filt) return albums # #### / find_tracks ## @@ -388,7 +388,7 @@ class MPD(MPDClient): fuzz, artist) if found: if artist.aliases: - self.log.debug('Found: %s', '/'.join(list(artist.names)[:4])) + self.log.debug('Found aliases: %s', '/'.join(artist.names)) return artist return None @@ -429,7 +429,7 @@ class MPD(MPDClient): TODO: Use MusicBrainzID here cf. #30 @gitlab """ albums = [] - for name in artist.names: + for name in artist.names_sz: if artist.aliases: self.log.debug('Searching album for aliase: "%s"', name) kwalbart = {'albumartist': name, 'artist': name} @@ -442,7 +442,7 @@ class MPD(MPDClient): if 'Various Artists' in [tr.albumartist for tr in album_trks]: self.log.debug('Discarding %s ("Various Artists" set)', album) continue - if name not in album_artists: + if album_artists and name not in album_artists: self.log.debug('Discarding "%s", "%s" not set as albumartist', album, name) continue arts = {trk.artist for trk in album_trks}