X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fplugins%2Finternal%2Frandom.py;h=88f959fb6c9ee6da3a37292668c1d790e219bc80;hb=cfe6dafed6e43714316c39c401475ed840e66a02;hp=feca9d80275ed4b90be5de3d15c03f11274fa049;hpb=1c01e4a7aa37eeef825c6918fc90b154a7f4ccc7;p=mpd-sima.git diff --git a/sima/plugins/internal/random.py b/sima/plugins/internal/random.py index feca9d8..88f959f 100644 --- a/sima/plugins/internal/random.py +++ b/sima/plugins/internal/random.py @@ -47,6 +47,7 @@ class Random(Plugin): self.log.warning('Bad value for flavour, ' '"%s" not in ["pure", "sensible"]', self.mode) self.mode = 'pure' + self.log.debug('Random flavour: %s', self.mode) def get_played_artist(self,): """Constructs list of already played artists. @@ -54,7 +55,7 @@ class Random(Plugin): duration = self.daemon.config.getint('sima', 'history_duration') tracks_from_db = self.daemon.sdb.get_history(duration=duration) # Construct Track() objects list from database history - artists = [tr[-1] for tr in tracks_from_db] + artists = [tr[0] for tr in tracks_from_db] return set(artists) def callback_need_track(self): @@ -81,9 +82,12 @@ class Random(Plugin): played_art = self.get_played_artist() while artists: art = random.choice(artists) + if self.daemon.sdb.get_bl_artist(art, add_not=True): + self.log.debug('Random: Blacklisted "%s"', art) + continue if art not in played_art: break - artists.pop(art) + artists.remove(art) elif self.mode == 'pure': art = random.choice(artists) if art is None: