]> kaliko git repositories - mpd-sima.git/commitdiff
Fixed typo in randomfallback
authorkaliko jack <kaliko@azylum.org>
Sun, 2 Mar 2014 13:16:21 +0000 (14:16 +0100)
committerkaliko jack <kaliko@azylum.org>
Sun, 2 Mar 2014 13:16:21 +0000 (14:16 +0100)
Update documentation

doc/examples/all_settings.cfg
sima/lib/plugin.py
sima/plugins/internal/randomfallback.py

index 119d7f42a15a187d0746ea0c4945edae5d661f99..3be857d42edf4101616c840a27c067a4c550ea12 100644 (file)
@@ -4,16 +4,6 @@
 # your $XDG_CONFIG_HOME (default is $HOME/.config/sima/)
 # You can also call it with --config option.
 #
-# Pay Attention:
-# * Inline comment are not possible
-#
-#  WRONG:
-#  host = localhost  # My host
-#
-#  OK:
-#  # My host
-#  host = localhost
-#
 ########################################################################
 
 ########################## MPD SECTION ################################
@@ -77,10 +67,12 @@ verbosity = info
 #          internal = "Crop, Lastfm, RandomFallBack"
 #          contrib =
 # description: Plugins list declaration.
-#     Optional plugin's configuration must be in its own section.
+#     Optional plugin's configuration lays in its own section.
 #     For instance a "AwesomePlugin" declared here
 #     gets its configuration from the corresponding section:
 #     "[awesomeplugin]"
+#     internal plugins will look for a section named after the lower-cased name
+#     of the pluglin, ie. RandomFallBack → randomfallback.
 #
 #     Two plugins sources are available, internal and contrib
 #
@@ -200,5 +192,4 @@ cache = True
 
 #
 ####################### END OF CONFIGURATION ##########################
-
 # vim: syntax=cfg fileencoding=utf-8
index 1188d4595e2190c47d8e6fbde7823926f49d852e..5f709422410754a5be0a3d0dcfbcd5142bd92f22 100644 (file)
@@ -58,7 +58,7 @@ class Plugin:
         """
         conf = self.__daemon.config
         for sec in conf.sections():
-            if sec.lower() == self.__class__.__name__.lower():
+            if sec == self.__class__.__name__.lower():
                 self.plugin_conf = conf[sec]
         #if self.plugin_conf:
         #    self.log.debug('Got config for {0}: {1}'.format(self,
index bb41bde933df9b6b9e51f892f915b9bdc38fd68a..aceff4414ce7f1fc0c4ff2ebd81f6fb1d2e6e149 100644 (file)
@@ -31,7 +31,10 @@ from ...lib.plugin import Plugin
 
 
 class RandomFallBack(Plugin):
-    """Add random track as fallback"""
+    """Add random track as fallback
+    TODO: refactor, this plugin does not look good to me.
+          callback_need_track_fb/get_trk articulation is not elegant at all
+    """
 
     def __init__(self, daemon):
         super().__init__(daemon)
@@ -56,18 +59,24 @@ class RandomFallBack(Plugin):
     def callback_need_track_fb(self):
         trks = list()
         target = self.plugin_conf.getint('track_to_add')
+        limit = 0
         while len(trks) < target:
             trk = self.get_trk()
             if trk:
                 trks.append(trk)
+            else:
+                limit += 1
+                if limit > 3:
+                    return trks
         return trks
 
     def get_trk(self):
         """Get a single track acording to random flavour
         """
         trk = None
+        art = None
         artists = list(self.player.artists)
-        if self.mode == 'sensitive':
+        if self.mode == 'sensible':
             played_art = self.get_played_artist()
             while artists:
                 art = random.choice(artists)
@@ -76,6 +85,8 @@ class RandomFallBack(Plugin):
                 artists.pop(art)
         elif self.mode == 'pure':
             art = random.choice(artists)
+        if art is None:
+            return None
         self.log.debug('Random art: {}'.format(art))
         trks = self.player.find_track(art)
         if trks: