X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fplugins%2Finternal%2Fgenre.py;h=713ee35eaa37fee3210e71704345149b9f3c111f;hb=37dd60538984a3917354b794a5c96b0a025f8e95;hp=808d96db07c04ba3e99eacf4eecd3fc025c2f388;hpb=d6e8ace21cc07eeb274c4c9280b0fe35479befaf;p=mpd-sima.git diff --git a/sima/plugins/internal/genre.py b/sima/plugins/internal/genre.py index 808d96d..713ee35 100644 --- a/sima/plugins/internal/genre.py +++ b/sima/plugins/internal/genre.py @@ -63,15 +63,14 @@ class Genre(AdvancedPlugin): raise PluginException('MPD >= 0.21 required') def fetch_genres(self): - pldepth = 4 - nbgenres = 2 - current_titles = self.player.playlist[-pldepth:] - genres = [] - for track in current_titles: - if not track.genres: - self.log.debug('No genre found in %s', track) - continue - genres.extend(track.genres) + """Fetches ,at most, nb-depth genre from history, + and returns the nbgenres most present""" + depth = 10 # nb of genre to fetch from history for analysis + nbgenres = 2 # nb of genre to return + genres = [g[0] for g in self.sdb.fetch_genres_history(limit=depth)] + if not genres: + self.log.debug('No genre found in current track history') + return [] genres_analysis = Counter(genres) if genres_analysis.most_common(): self.log.debug('Most common genres: %s', genres_analysis.most_common()) @@ -101,7 +100,9 @@ class Genre(AdvancedPlugin): for artist in artists: self.log.debug('looking for %s', artist) tracks = self.player.find_tracks(artist) - trk = self.filter_track(tracks) + if not tracks: + continue + trk = self.filter_track(tracks, candidates) if not trk: continue if queue_mode == 'track':