From 87088e67d19737422b432bd0b8e702cd04c2970f Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Sat, 8 Jan 2011 22:32:18 -0600 Subject: [PATCH] attempt to ask the modules for help text --- modules/Help.py | 50 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/modules/Help.py b/modules/Help.py index dd9c78f..d97d50d 100755 --- a/modules/Help.py +++ b/modules/Help.py @@ -39,23 +39,53 @@ class Help(Module): """look for karma strings at the start of messages""" match = self.helpre.search(what) - if (match): + if match: (module, key) = match.group(2,4) if (module == None): - return self.help_descriptions() + return self.handle_help_descriptions() elif (key == None): - return self.help_module(module) + return self.handle_help_module(module) else: - return self.help_detail(module, key) + return self.handle_help_detail(module, key) - def help_descriptions(self): - return "asked for general help" + def handle_help_descriptions(self): + message = "General Help:\n" + for module in self.irc.modlist: + description = module.help_description() + if description: + message += " %s - %s\n" % (module.__class__.__name__, + description) + return message - def help_module(self, module): - return "asked for help on module %s" % (module) + def handle_help_module(self, modname): + module = self.find_module(modname) + if module: + helptext = module.help_summary() + if helptext: + return "%s - %s" % (modname, helptext) + else: + return "no help available for module %s" % (modname) + else: + return "no module named '%s' is loaded" % (modname) - def help_detail(self, module, key): - return "asked for help on module %s detail %s" % (module, key) + def handle_help_detail(self, modname, key): + module = self.find_module(modname) + if module: + helptext = module.help_detail(key) + if helptext: + return "%s (%s) - %s" % (modname, key, helptext) + else: + return "no help available for module '%s', command '%s'" % (modname, key) + else: + return "no module named '%s' is loaded" % (modname) + + return "asked for help on module %s detail %s" % (modname, key) + + def find_module(self, modname): + for module in self.irc.modlist: + if modname == module.__class__.__name__: + return module + return None if __name__ == "__main__": print "Hello World"