X-Git-Url: https://git.kaliko.me/?p=sid.git;a=blobdiff_plain;f=sid%2Fsid.py;h=fadb79e172ec77de117f9b2696f13d437f5fa6ee;hp=5b85fd15211315113fc83a3907938ba74d623e70;hb=1c1134e00f13fee92f9a0e0996d08db32579d89a;hpb=6a59e4d7abd60a2e785f3e4bfcc3189ad43122e3 diff --git a/sid/sid.py b/sid/sid.py index 5b85fd1..fadb79e 100644 --- a/sid/sid.py +++ b/sid/sid.py @@ -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):