[alias] Use alias command to display and define new aliases

This commit is contained in:
nemunaire 2016-01-15 19:18:17 +01:00
parent 645c18c981
commit bd2eff83b7

View File

@ -206,19 +206,31 @@ def cmd_listalias(msg):
@hook.command("alias", @hook.command("alias",
help="Display the replacement command for a given alias") help="Display or define the replacement command for a given alias",
help_usage={
"ALIAS": "Extends the given alias",
"ALIAS COMMAND [ARGS ...]": "Create a new alias named ALIAS as replacement to the given COMMAND and ARGS",
})
def cmd_alias(msg): def cmd_alias(msg):
if not len(msg.args): if not len(msg.args):
raise IMException("!alias takes as argument an alias to extend.") raise IMException("!alias takes as argument an alias to extend.")
res = list()
for alias in msg.args: elif len(msg.args) == 1:
alias = msg.args[0]
if alias[0] == "!": if alias[0] == "!":
alias = alias[1:] alias = alias[1:]
if alias in context.data.getNode("aliases").index: if alias in context.data.getNode("aliases").index:
res.append("!%s correspond to %s" % (alias, context.data.getNode("aliases").index[alias]["origin"])) return Response("!%s correspond to %s" % (alias, context.data.getNode("aliases").index[alias]["origin"]), channel=msg.channel, nick=msg.nick)
else: else:
res.append("!%s is not an alias" % alias) return Response("!%s is not an alias" % alias, channel=msg.channel, nick=msg.nick)
return Response(res, channel=msg.channel, nick=msg.nick)
else:
create_alias(msg.args[0],
" ".join(msg.args[1:]),
channel=msg.channel,
creator=msg.nick)
return Response("New alias %s successfully registered." %
msg.args[0], channel=msg.channel)
@hook.command("unalias", @hook.command("unalias",
@ -261,22 +273,3 @@ def treat_alias(msg):
return [msg, nmsg] return [msg, nmsg]
return msg return msg
@hook.ask()
def parseask(msg):
if re.match(".*(register|set|cr[ée]{2}|new|nouvel(le)?) alias.*", msg.text) is not None:
result = re.match(".*alias !?([^ ]+) ?(pour|for|=|:) ?(.+)$", msg.text)
if result is None:
raise IMException("Something is wrong with your alias definition. Hint: spaces are not allowed.")
elif result.group(1) in context.data.getNode("aliases").index:
raise IMException("this alias is already defined.")
else:
create_alias(result.group(1),
result.group(3),
channel=msg.channel,
creator=msg.nick)
res = Response("New alias %s successfully registered." %
result.group(1), channel=msg.channel)
return res
return None