X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Fplugins%2Finternal%2Fgenre.py;h=264d8abfba25e79c5c17b9e7ee30911ca822fa80;hb=a978d2975c3201dbac0c9e43a08337a800438d2f;hp=808d96db07c04ba3e99eacf4eecd3fc025c2f388;hpb=d6e8ace21cc07eeb274c4c9280b0fe35479befaf;p=mpd-sima.git diff --git a/sima/plugins/internal/genre.py b/sima/plugins/internal/genre.py index 808d96d..264d8ab 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':