X-Git-Url: http://git.kaliko.me/?a=blobdiff_plain;f=sima%2Flib%2Fplugin.py;h=9a721bbd4630edd2fadbe5a4ecf2f32e91e8ee32;hb=f76a5c2fce5c9a515efb93991c53ce8e0edaf197;hp=47e21f2fae9ec52b566e587781cbe74e5dee31b7;hpb=a2cfd0a9a7328d43d64ad127fc3c928dba1986d5;p=mpd-sima.git diff --git a/sima/lib/plugin.py b/sima/lib/plugin.py index 47e21f2..9a721bb 100644 --- a/sima/lib/plugin.py +++ b/sima/lib/plugin.py @@ -41,7 +41,7 @@ class Plugin: def info(cls): """self documenting class method """ - doc = 'Undocumented plugin! Fill "{}" docstring'.format(cls.__name__) + doc = f'Undocumented plugin! Fill "{cls.__name__}" docstring' if cls.__doc__: doc = cls.__doc__.strip(' \n').splitlines()[0] return {'name': cls.__name__, @@ -109,12 +109,6 @@ class Plugin: Returns a list of Track objects to add """ - def callback_need_track_fb(self): - """ - Called when callback_need_track failled to find tracks to queue - Returns a list of Track objects to add - """ - def shutdown(self): """Called on application shutdown""" @@ -166,7 +160,7 @@ class AdvancedPlugin(Plugin): :param Artist artist: Artist to fetch an album for :param bool unplayed: Fetch only unplayed album """ - self.log.info('Searching an album for "%s"...' % artist) + self.log.info('Searching an album for "%s"...', artist) albums = self.player.search_albums(artist) if not albums: return None @@ -176,7 +170,7 @@ class AdvancedPlugin(Plugin): albums_not_in_hist = [a for a in albums if a.name not in albums_hist] # Get to next artist if there are no unplayed albums if not albums_not_in_hist: - self.log.info('No unplayed album found for "%s"' % artist) + self.log.info('No unplayed album found for "%s"', artist) if unplayed: return None random.shuffle(albums_not_in_hist) @@ -204,11 +198,17 @@ class AdvancedPlugin(Plugin): self.__class__.__name__, artist, album_to_queue) return album_to_queue - def filter_track(self, tracks, unplayed=False): + def filter_track(self, tracks, chosen=None, unplayed=False): """ Extract one unplayed track from a Track object list. * not in history * not already in the queue + + :param list(Track) tracks: List of tracks to chose from + :param list(Track) chosen: List of tracks previously chosen + :param bool unplayed: chose only unplayed (honoring history duration setting) + :return: A Track + :rtype: Track """ artist = tracks[0].Artist # In random play mode use complete playlist to filter @@ -227,7 +227,7 @@ class AdvancedPlugin(Plugin): # Should use albumartist heuristic as well if self.plugin_conf.getboolean('single_album', False): # pylint: disable=no-member albums = [tr.Album for tr in deny_list] - albums += [tr.Album for tr in self.to_add] + albums += [tr.Album for tr in chosen] if (trk.Album == self.player.current.Album or trk.Album in albums): self.log.debug('Found unplayed track ' +