]> kaliko git repositories - mpd-sima.git/blobdiff - sima/lib/plugin.py
Add priority to plugins
[mpd-sima.git] / sima / lib / plugin.py
index 755aadf93efbfd514c39daad003bd5b71cb23f16..559e59ffc50a4a6c4510cc5ddc5f10f26ac07f9c 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (c) 2013, 2014 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2013-2015 Jack Kaliko <kaliko@azylum.org>
 #
 #  This file is part of sima
 #
@@ -21,6 +21,7 @@
 Plugin object to derive from
 """
 
+
 class Plugin:
     """
     First non-empty line of the docstring is used as description
@@ -57,13 +58,28 @@ class Plugin:
         """Get plugin's specific configuration from global applications's config
         """
         conf = self.__daemon.config
-        for sec in conf.sections():
+        for sec in conf.sections():  # Discovering plugin conf
             if sec == self.__class__.__name__.lower():
                 self.plugin_conf = conf[sec]
+                if 'priority' not in self.plugin_conf:
+                    self.plugin_conf['priority'] = '80'
+        if not self.plugin_conf:
+            self.plugin_conf = {'priority': '80'}
         #if self.plugin_conf:
         #    self.log.debug('Got config for {0}: {1}'.format(self,
         #                                                    self.plugin_conf))
 
+    @property
+    def priority(self):
+        return self.plugin_conf.get('priority')
+
+    def start(self):
+        """
+        Called when the daemon().run() is called and
+        right after the player has connected successfully.
+        """
+        pass
+
     def callback_player(self):
         """
         Called on player changes, stopped, paused, skipped
@@ -79,24 +95,26 @@ class Plugin:
     def callback_playlist(self):
         """
         Called on playlist changes
-
         Not returning data
         """
         pass
 
     def callback_next_song(self):
-        """Not returning data,
+        """
         Could be use to scrobble, maintain an history…
+        Not returning data,
         """
         pass
 
     def callback_need_track(self):
-        """Returns a list of Track objects to add
+        """
+        Returns a list of Track objects to add
         """
         pass
 
     def callback_need_track_fb(self):
-        """Called when callback_next_song failled to find tracks to queue
+        """
+        Called when callback_need_track failled to find tracks to queue
         Returns a list of Track objects to add
         """
         pass