From d152ce71bd535640ea5f320e4cc5affe5f91fff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A9munaire?= Date: Sun, 2 Sep 2012 18:41:20 +0200 Subject: [PATCH] Fix !help --- message.py | 50 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/message.py b/message.py index 7116607..0839c42 100644 --- a/message.py +++ b/message.py @@ -239,33 +239,49 @@ class Message: except ValueError: self.cmd = self.content[1:].split(' ') if self.cmd[0] == "help": - if len (self.cmd) > 1: - if self.cmd[1] in mods: - try: - self.send_snd(mods[self.cmd[1]].help_full ()) - except AttributeError: - self.send_snd("No help for command %s" % self.cmd[1]) + res = Response(self.sender) + if len(self.cmd) > 1: + if self.cmd[1] in self.srv.context.modules: + if len(self.cmd) > 2: + if hasattr(self.srv.context.modules[self.cmd[1]], "HELP_cmd"): + res.append_message(self.srv.context.modules[self.cmd[1]].HELP_cmd(self, self.cmd[2])) + else: + res.append_message("No help for command %s in module %s" % (self.cmd[2], self.cmd[1])) + elif hasattr(self.srv.context.modules[self.cmd[1]], "help_full"): + res.append_message(self.srv.context.modules[self.cmd[1]].help_full()) + else: + res.append_message("No help for module %s" % self.cmd[1]) + else: + res.append_message("No module named %s" % self.cmd[1]) else: - self.send_snd("No help for command %s" % self.cmd[1]) - else: - self.send_snd("Pour me demander quelque chose, commencez votre message par mon nom ; je réagis à certain messages commençant par !, consulter l'aide de chaque module :") - for im in mods: - try: - self.send_snd(" - !help %s: %s" % (im.name, im.help_tiny ())) - except AttributeError: - continue + res.append_message("Pour me demander quelque chose, commencez " + "votre message par mon nom ; je réagis " + "également à certaine commandes commençant par" + " !. Pour plus d'informations, envoyez le " + "message \"!more\".") + res.append_message("Mon code source est libre, publié sous " + "licence AGPL (http://www.gnu.org/licenses/). " + "Vous pouvez le consulter, le dupliquer, " + "envoyer des rapports de bogues ou bien " + "contribuer au projet sur GitHub : " + "http://github.com/nemunaire/nemubot/") + res.append_message(title="Pour plus de détails sur un module, " + "envoyez \"!help nomdumodule\". Voici la liste" + " de tous les modules disponibles localement", + message=["\x03\x02%s\x03\x02 (%s)" % (im, self.srv.context.modules[im].help_tiny ()) for im in self.srv.context.modules if hasattr(self.srv.context.modules[im], "help_tiny")]) + return res elif self.cmd[0] == "more": if self.channel == self.srv.nick: - if self.nick in self.srv.moremessages: + if self.sender in self.srv.moremessages: return self.srv.moremessages[self.sender] else: if self.channel in self.srv.moremessages: return self.srv.moremessages[self.channel] - elif self.cmd[0] == "dcctest": + elif self.cmd[0] == "dcc": print("dcctest for", self.sender) - self.srv.send_dcc("Test DCC", self.sender) + self.srv.send_dcc("Hello %s!" % self.nick, self.sender) elif self.cmd[0] == "pvdcctest": print("dcctest") return Response(self.sender, message="Test DCC")