X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;ds=sidebyside;f=sima%2Fplugins%2Finternal%2Frandom.py;h=0dfb005c9c81b92cc3c6881a6f92d65914389025;hb=4ea8f2fe3f29fe09e7a3ab60ac781d54841db5bb;hp=148138b0d9aa99bda28c46a1084eed6bc48311b7;hpb=5aa6ec2f4b449797fbe8269c0d8d7da66bd2c9bc;p=mpd-sima.git diff --git a/sima/plugins/internal/random.py b/sima/plugins/internal/random.py index 148138b..0dfb005 100644 --- a/sima/plugins/internal/random.py +++ b/sima/plugins/internal/random.py @@ -37,7 +37,6 @@ class Random(Plugin): def __init__(self, daemon): super().__init__(daemon) - self.daemon = daemon self.mode = self.plugin_conf.get('flavour', None) if self.mode not in ['pure', 'sensible']: self.log.warning('Bad value for flavour, ' @@ -49,10 +48,10 @@ class Random(Plugin): def get_played_artist(self,): """Constructs list of already played artists. """ - duration = self.daemon.config.getint('sima', 'history_duration') - tracks_from_db = self.daemon.sdb.get_history(duration=duration) - artists = [tr[0] for tr in tracks_from_db] - return set(artists) + duration = self.main_conf.getint('sima', 'history_duration') + tracks_from_db = self.sdb.get_history(duration=duration) + artists = {tr[0] for tr in tracks_from_db} + return artists def filtered_artist(self, artist): """Filters artists: @@ -63,7 +62,7 @@ class Random(Plugin): * not blacklisted """ if self.mode == 'sensible': - if self.daemon.sdb.get_bl_artist(artist, add_not=True): + if self.sdb.get_bl_artist(artist, add_not=True): self.log.debug('Random: Blacklisted "%s"', artist) return True if artist in self.get_played_artist(): @@ -78,7 +77,7 @@ class Random(Plugin): self.candidates = [] trks = [] target = self.plugin_conf.getint('track_to_add') - artists = self.player.list('artist') + artists = self.player.list('artist', '( artist != "")') random.shuffle(artists) for art in artists: if self.filtered_artist(art): @@ -88,7 +87,7 @@ class Random(Plugin): if trks: trk = random.choice(trks) self.candidates.append(trk) - self.log.info('Random candidate (%s): %s', self.mode, trk) + self.log.info('Random plugin chose (%s): %s', self.mode, trk) if len(self.candidates) >= target: break return self.candidates