]> kaliko git repositories - sid.git/blobdiff - sid/sid.py
sphinx: Add sphinx docstring
[sid.git] / sid / sid.py
index 5b85fd15211315113fc83a3907938ba74d623e70..fadb79e172ec77de117f9b2696f13d437f5fa6ee 100644 (file)
@@ -25,7 +25,11 @@ import slixmpp
 
 
 def botcmd(*args, **kwargs):
-    """Decorator for bot command functions"""
+    """Decorator for bot command functions
+
+    :param bool hidden: is the command hidden in global help
+    :param str name: command name, default to decorated function name
+    """
 
     def decorate(func, hidden=False, name=None):
         setattr(func, '_bot_command', True)
@@ -42,7 +46,16 @@ def botcmd(*args, **kwargs):
 
 
 class MUCBot(slixmpp.ClientXMPP):
-
+    """
+    :param str jid: jid to log with
+    :param str password: jid password
+    :param str room: conference room to join
+    :param str nick: Nickname to use in the room
+    """
+
+    #: Class attribute to define bot's command prefix
+    #:
+    #: Defaults to "!"
     prefix = '!'
 
     def __init__(self, jid, password, room, nick, log_file=None,
@@ -56,10 +69,10 @@ class MUCBot(slixmpp.ClientXMPP):
         self.nick = nick
         self.__set_logger(log_file, log_level)
         self.__seen = dict()
-        self.register_plugin('xep_0030') # Service Discovery
-        self.register_plugin('xep_0045') # Multi-User Chat
-        self.register_plugin('xep_0071') # xhtml-im
-        self.register_plugin('xep_0199') # self Ping
+        self.register_plugin('xep_0030')  # Service Discovery
+        self.register_plugin('xep_0045')  # Multi-User Chat
+        self.register_plugin('xep_0071')  # xhtml-im
+        self.register_plugin('xep_0199')  # self Ping
 
         # The session_start event will be triggered when
         # the bot establishes its connection with the server
@@ -92,7 +105,10 @@ class MUCBot(slixmpp.ClientXMPP):
         self.log.debug('set logger, log level : %s', log_level)
 
     def message(self, msg):
-        """Messages handler"""
+        """Messages handler
+
+        Parses message received to detect :py:obj:`prefix`
+        """
         if msg['type'] not in ('groupchat', 'chat'):
             self.log.warning('Unhandled message')
             return
@@ -133,10 +149,8 @@ class MUCBot(slixmpp.ClientXMPP):
         requesting the roster and broadcasting an initial
         presence stanza.
 
-        Arguments:
-            event -- An empty dictionary. The session_start
-                     event does not provide any additional
-                     data.
+        :param dict event: An empty dictionary. The session_start
+                     event does not provide any additional data.
         """
         self.get_roster()
         self.send_presence()
@@ -146,8 +160,9 @@ class MUCBot(slixmpp.ClientXMPP):
                                         # password=the_room_password,
                                         wait=True)
 
-    def register_bot_plugin(self, plugin_class):
-        self.plugins.append(plugin_class(self))
+        :param `sid.plugin.Plugin` plugin_cls: A :py:obj:`sid.plugin.Plugin` class
+        """
+        self.plugins.append(plugin_cls(self))
         for name, value in inspect.getmembers(self.plugins[-1]):
             if inspect.ismethod(value) and getattr(value, '_bot_command',
                                                    False):