From: kaliko Date: Sat, 22 Nov 2014 23:30:58 +0000 (+0100) Subject: Fixed some inconsistencies X-Git-Tag: 0.12.3~8 X-Git-Url: https://git.kaliko.me/?a=commitdiff_plain;h=0264d2f9cea7c5e60ac71234ee4f7de78b338850;p=mpd-sima.git Fixed some inconsistencies --- diff --git a/sima/client.py b/sima/client.py index 9eae523..7c0e5a7 100644 --- a/sima/client.py +++ b/sima/client.py @@ -217,7 +217,7 @@ class PlayerClient(Player): # Check against the actual string in artist list if artist.orig in self.artists: self.log.debug('found exact match for "%s"' % artist) - return [artist] + return [artist.orig] # Then proceed with fuzzy matching if got nothing match = get_close_matches(artist.orig, self.artists, 50, 0.73) if not match: diff --git a/sima/lib/track.py b/sima/lib/track.py index 55fb367..5b25bd3 100644 --- a/sima/lib/track.py +++ b/sima/lib/track.py @@ -128,8 +128,10 @@ class Track: def get_artist(self): """Get artist object from track""" - return Artist(name=self.albumartist or self.artist, - mbid=self.musicbrainz_artistid) + name = self.artist + if self.albumartist and self.albumartist != 'Various Artists': + name = self.albumartist + return Artist(name=name, mbid=self.musicbrainz_artistid) # VIM MODLINE # vim: ai ts=4 sw=4 sts=4 expandtab diff --git a/sima/lib/webserv.py b/sima/lib/webserv.py index f1afd55..a4fb056 100644 --- a/sima/lib/webserv.py +++ b/sima/lib/webserv.py @@ -143,8 +143,7 @@ class WebService(Plugin): # TODO: move to utils as a decorator duration = self.daemon_conf.getint('sima', 'history_duration') art_in_hist = list() - for trk in self.sdb.get_history(duration=duration, - artists=alist): + for trk in self.sdb.get_history(duration=duration, artists=alist): if trk[0] not in art_in_hist: art_in_hist.append(trk[0]) art_in_hist.reverse() @@ -179,8 +178,7 @@ class WebService(Plugin): # initialize artists deque list to construct from DB as_art = deque() as_artists = self.ws().get_similar(artist=artist) - self.log.debug('Requesting {1} for "{0}"'.format(artist, - self.ws.name)) + self.log.debug('Requesting {} for {!r}'.format(self.ws.name,artist)) try: # TODO: let's propagate Artist type [as_art.append(str(art)) for art in as_artists] @@ -251,6 +249,9 @@ class WebService(Plugin): if ret & queued_artists: self.log.debug('Removing already queued artist: {0}'.format(ret & queued_artists)) ret = list(ret - queued_artists) + if self.player.current.artist in ret: + self.log.debug('Removing current artist: {0}'.format(self.player.current.artist)) + ret = list(ret - {self.player.current.artist}) # Move around similars items to get in unplayed|not recently played # artist first. return self._get_artists_list_reorg(ret)