]> kaliko git repositories - sid.git/blobdiff - sid/plugin.py
Add helpers to add/remove handlers
[sid.git] / sid / plugin.py
index 6db1d5984f07875af599dd694393ba0aeb8f69c2..efc9a146c31f798eedb48cdb22e0d799b5a704f1 100644 (file)
@@ -17,6 +17,7 @@
 
 from .sid import botcmd
 
+
 class Plugin:
     """
     Simple Plugin object to derive from:
@@ -30,6 +31,20 @@ class Plugin:
     def __init__(self, bot):
         self.bot = bot
         self.log = bot.log.getChild(self.__class__.__name__)
+        #: :py:obj:`list` : List of tuples (event, handler)
+        self.handlers = []
+
+    def add_handlers(self):
+        """Add handlers declared in self.hanlders"""
+        for event, handler in self.handlers:
+            self.log.debug(f'Add {event} > {self.__class__.__name__}().{handler.__name__}')
+            self.bot.add_event_handler(event, handler)
+
+    def rm_handlers(self):
+        """Remove handlers declared in self.hanlders"""
+        for event, handler in self.handlers:
+            self.log.debug(f'Remove {event} > {self.__class__.__name__}().{handler.__name__}')
+            self.bot.del_event_handler(event, handler)
 
     def send(self, dest, msg, mtype='chat'):
         """Send msg to dest
@@ -66,4 +81,5 @@ class Plugin:
         self.send(to, msg, mtype=rcv['type'])
 
     def shutdown(self):
+        """Empty method to override. Called on bot shutdown"""
         pass