]> jfr.im git - erebus.git/blobdiff - modules/help.py
add compatibility with Python3. add README.
[erebus.git] / modules / help.py
index 49c3aa61875d763fd8872ac8fdf00850d8d083fd..fc0dfe5392fbbc9de9f6c868233ec1747e8a5e91 100644 (file)
@@ -6,7 +6,7 @@
 modinfo = {
        'author': 'Erebus Team',
        'license': 'public domain',
-       'compatible': [2],
+       'compatible': [0],
        'depends': [],
        'softdeps': [],
 }
@@ -14,7 +14,12 @@ modinfo = {
 # preamble
 import modlib
 lib = modlib.modlib(__name__)
-modstart = lib.modstart
+def modstart(parent, *args, **kwargs):
+       if parent.cfg.getboolean('erebus', 'nofakelag'):
+               lib.hook('help', needchan=False)(lib.help('[@<module>|<command>]', 'lists commands or describes a command', 'with @<module>, lists all commands in <module>')(help_nolag))
+       else:
+               lib.hook(needchan=False)(lib.help("<command>", "describes a command")(help))
+       return lib.modstart(parent, *args, **kwargs)
 modstop = lib.modstop
 
 # module code
@@ -114,7 +119,7 @@ def _genhelp(bot, user, chan, realtarget, *args):
                        filename = filepath
                fo = open(filename, 'w')
                lines = []
-               for func in helps.itervalues():
+               for func in helps.values():
                        if module is not None and func.module != module:
                                        continue
                        lines += _mkhelp(level, func)
@@ -133,8 +138,8 @@ def genhelp(bot, user, chan, realtarget, *args):
                return
        bot.msg(user, "Help written.")
 
-@lib.hook(needchan=False)
-@lib.help("<command>", "describes a command")
+#@lib.hook(needchan=False)
+#@lib.help("<command>", "describes a command")
 @lib.argsGE(1)
 def help(bot, user, chan, realtarget, *args):
        cmd = str(' '.join(args)).lower()
@@ -151,7 +156,7 @@ def help(bot, user, chan, realtarget, *args):
 @lib.hook(needchan=False)
 @lib.help(None, "provides command list")
 def showcommands(bot, user, chan, realtarget, *args):
-       if bool(int(bot.parent.cfg.get('help', 'autogen', default=0))):
+       if bot.parent.cfg.getboolean('help', 'autogen'):
                try:
                        _genhelp(bot, user, chan, realtarget, *args)
                except: pass
@@ -169,13 +174,12 @@ def showcommands(bot, user, chan, realtarget, *args):
        else:
                bot.msg(user, "I don't know where help is. Sorry. Contact my owner.")
 
-"""#DISABLED
-@lib.hook(needchan=False)
-@lib.help('[@<module>|<command>]', 'lists commands or describes a command', 'with @<module>, lists all commands in <module>')
-def help(bot, user, chan, realtarget, *args):
+#@lib.hook(needchan=False)
+#@lib.help('[@<module>|<command>]', 'lists commands or describes a command', 'with @<module>, lists all commands in <module>')
+def help_nolag(bot, user, chan, realtarget, *args):
        if len(args) == 0: # list commands
                lines = []
-               for func in helps.itervalues():
+               for func in helps.values():
                        lines += _mkhelp(user, func)
                for line in sorted(lines):
                        bot.slowmsg(user, str(line))
@@ -183,7 +187,7 @@ def help(bot, user, chan, realtarget, *args):
        elif args[0].startswith("@"):
                lines = []
                mod = args[0][1:].lower()
-               for func in helps.itervalues():
+               for func in helps.values():
                        if func.module == mod:
                                lines += _mkhelp(user, func)
                for line in sorted(lines):
@@ -193,7 +197,7 @@ def help(bot, user, chan, realtarget, *args):
                cmd = str(' '.join(args)).lower()
                if cmd in cmds and user.glevel >= cmds[cmd].reqglevel:
                        func = cmds[cmd]
-                       bot.slowmsg(user, str(HelpLine(func.cmd[0], func.syntax, func.shorthelp, (user.glevel > 0), func.reqglevel, func.module)))
+                       bot.slowmsg(user, str(HelpLine(func.cmd[0], func.syntax, func.shorthelp, (user.glevel > 0), func.reqglevel, func.module, func.reqclevel)))
                        for line in func.longhelps:
                                bot.slowmsg(user, "  %s" % (line))
                        bot.slowmsg(user, "End of help for %s." % (func.cmd[0]))
@@ -202,5 +206,3 @@ def help(bot, user, chan, realtarget, *args):
                                bot.slowmsg(user, "  Aliases: %s" % (' '.join(func.cmd[1:])))
                else:
                        bot.slowmsg(user, "No help found for %s" % (cmd))
-"""
-pass