From 804a883e5fd9240993475c2b7c7237f8df377085 Mon Sep 17 00:00:00 2001 From: kaliko Date: Thu, 26 Jun 2014 23:02:18 +0200 Subject: [PATCH] Fixed regression, do not queue already queued artists --- doc/Changelog | 2 ++ sima/lib/webserv.py | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) 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) -- 2.39.2