+ # In random play mode use complete playlist to filter
+ if self.player.playmode.get('random'):
+ queued_artists = MetaContainer([trk.Artist for trk in self.player.playlist])
+ else:
+ queued_artists = MetaContainer([trk.Artist for trk in self.player.queue])
+ self.log.trace('Already queued: %s', queued_artists)
+ self.log.trace('Candidate: %s', ret)
+ if ret & queued_artists:
+ self.log.debug('Removing already queued artists: '
+ '%s', '/'.join(map(str, ret & queued_artists)))
+ ret = ret - queued_artists
+ current = self.player.current
+ if current and current.Artist in ret:
+ self.log.debug('Removing current artist: %s', current.Artist)
+ ret = ret - MetaContainer([current.Artist])