From 50ef200a223d7438d9e6f4bb1a6ab1daa74cbeb6 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Mon, 18 Apr 2011 19:37:04 -0400 Subject: [PATCH] support command aliases in bot help --- irc/commands/help.py | 11 ++++++++--- irc/triggers.py | 16 +++++++++++++--- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/irc/commands/help.py b/irc/commands/help.py index bde45d9..e29e220 100644 --- a/irc/commands/help.py +++ b/irc/commands/help.py @@ -2,6 +2,8 @@ """Generates help information.""" +from irc import triggers + connection, data = None, None def call(c, d): @@ -22,9 +24,12 @@ def do_command_help(): try: exec "from irc.commands import %s as this_command" % command - except ImportError: - connection.reply(data.chan, data.nick, "command \x0303%s\x0301 not found!" % command) - return + except ImportError: # if we can't find it directly, this could be an alias for another command + try: + this_command = triggers.get_alias(command) + except KeyError: + connection.reply(data.chan, data.nick, "command \x0303%s\x0301 not found!" % command) + return info = this_command.__doc__ diff --git a/irc/triggers.py b/irc/triggers.py index 08a13c2..43d9301 100644 --- a/irc/triggers.py +++ b/irc/triggers.py @@ -4,9 +4,19 @@ from irc.commands import test, help, git, link, chanops +def get_alias(key): + """used by help.py, e.g. so we know !voice corresponds to chanops.py""" + aliases = { + "voice": chanops, + "devoice": chanops, + "op": chanops, + "deop": chanops, + } + return aliases[key] + def check(connection, data, hook): data.parse_args() # parse command arguments into data.command and data.args - + if hook == "join": pass @@ -19,10 +29,10 @@ def check(connection, data, hook): if hook == "msg": if data.command == "!test": test.call(connection, data) - + elif data.command == "!help": help.call(connection, data) - + elif data.command == "!git": git.call(connection, data)