]> kaliko git repositories - mpd-sima.git/blobdiff - sima/lib/plugin.py
Cleanup plugin class
[mpd-sima.git] / sima / lib / plugin.py
index 47e21f2fae9ec52b566e587781cbe74e5dee31b7..9a721bbd4630edd2fadbe5a4ecf2f32e91e8ee32 100644 (file)
@@ -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 ' +