From: kaliko Date: Thu, 26 Jun 2014 21:02:18 +0000 (+0200) Subject: Fixed regression, do not queue already queued artists X-Git-Tag: 0.12.2~7 X-Git-Url: https://git.kaliko.me/?a=commitdiff_plain;h=804a883e5fd9240993475c2b7c7237f8df377085;hp=1bc9ec904e7c0475160239afe9d28856ead0f2a9;p=mpd-sima.git Fixed regression, do not queue already queued artists --- diff --git a/doc/Changelog b/doc/Changelog index e0a503e..0920048 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,7 +1,9 @@ MPD_sima v0.12.2 * Add some randomness to track selection + * Do not queue artist already queued (regression) * … + -- kaliko jack UNRELEASED diff --git a/sima/lib/webserv.py b/sima/lib/webserv.py index 30a7eac..4a048e9 100644 --- a/sima/lib/webserv.py +++ b/sima/lib/webserv.py @@ -236,18 +236,22 @@ class WebService(Plugin): self.log.info('First five similar artist(s): {}...'.format( ' / '.join([a for a in list(similar)[0:5]]))) self.log.info('Looking availability in music library') - ret = self.get_artists_from_player(similar) + ret = set(self.get_artists_from_player(similar)) ret_extra = None if len(self.history) >= 2: if self.plugin_conf.getint('depth') > 1: ret_extra = self.get_recursive_similar_artist() if ret_extra: - ret = list(set(ret) | set(ret_extra)) + ret = set(ret) | set(ret_extra) if not ret: self.log.warning('Got nothing from music library.') self.log.warning('Try running in debug mode to guess why...') return [] self.log.info('Got {} artists in library'.format(len(ret))) + queued_artists = { trk.artist for trk in self.player.queue } + if ret & queued_artists: + self.log.debug('Removing already queued artist: {0}'.format(ret & queued_artists)) + ret = list(ret - queued_artists) # Move around similars items to get in unplayed|not recently played # artist first. return self._get_artists_list_reorg(ret)