aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2019-12-10 11:23:34 +0000
committerGravatar jesopo2019-12-10 11:23:34 +0000
commit734aec179f53712505a3f43f4c4ee5c41da4bd83 (patch)
treebea68dfdbb6bf2fdbdc138bfba79a8fa0ecfc152 /modules
parentdon't overwrite `on_resume()` in ircv3_resume (diff)
signature
move aliases.py to core_modules
Diffstat (limited to 'modules')
-rw-r--r--modules/aliases.py120
1 files changed, 0 insertions, 120 deletions
diff --git a/modules/aliases.py b/modules/aliases.py
deleted file mode 100644
index 3b120370..00000000
--- a/modules/aliases.py
+++ /dev/null
@@ -1,120 +0,0 @@
-#--depends-on commands
-import re
-from src import EventManager, ModuleManager, utils
-
-REGEX_ARG_NUMBER = re.compile(r"\$(?:(\d+)(-?)|(-))")
-SETTING_PREFIX = "command-alias-"
-
-class Module(ModuleManager.BaseModule):
- def _arg_replace(self, s, args_split):
- parts = s.split("$$")
- for i, part in enumerate(parts):
- for match in REGEX_ARG_NUMBER.finditer(s):
- if match.group(1):
- index = int(match.group(1))
- continuous = match.group(2) == "-"
- if index >= len(args_split):
- raise IndexError("Unknown alias arg index")
- else:
- index = 0
- continuous = True
-
- if continuous:
- replace = " ".join(args_split[index:])
- else:
- replace = args_split[index]
- parts[i] = part.replace(match.group(0), replace)
- return "$".join(parts)
-
- def _get_alias(self, server, target, command):
- setting = "%s%s" % (SETTING_PREFIX, command)
- command = self.bot.get_setting(setting,
- server.get_setting(setting,
- target.get_setting(setting, None)))
- if not command == None:
- command, _, args = command.partition(" ")
- return command, args
- return None
- def _get_aliases(self, targets):
- alias_list = []
- for target in targets:
- alias_list += target.find_settings(prefix=SETTING_PREFIX)
-
- aliases = {}
- for alias, command in alias_list:
- alias = alias.replace(SETTING_PREFIX, "", 1)
- if not alias in aliases:
- aliases[alias] = command
- return aliases
-
- @utils.hook("get.command")
- @utils.kwarg("priority", EventManager.PRIORITY_URGENT)
- def get_command(self, event):
- alias = self._get_alias(event["server"], event["target"],
- event["command"].command)
- if not alias == None:
- alias, alias_args = alias
- event["command"].command = alias
- event["command"].args = self._arg_replace(alias_args,
- event["command"].args.split(" "))
-
- @utils.hook("received.command.alias")
- @utils.hook("received.command.calias",
- require_mode="o", require_access="alias")
- @utils.kwarg("min_args", 1)
- @utils.kwarg("permission", "alias")
- @utils.kwarg("usage", "list")
- @utils.kwarg("usage", "add <alias> <command> [arg1 [arg2 ...]]")
- @utils.kwarg("usage", "remove <alias>")
- @utils.kwarg("remove_empty", False)
- def alias(self, event):
- target = event["server"]
- if event["command"] == "calias":
- if not event["is_channel"]:
- raise utils.EventError("%scalias can only be used in-channel"
- % event["command_prefix"])
- target = event["target"]
-
- subcommand = event["args_split"][0].lower()
- if subcommand == "list":
- aliases = self._get_aliases([target])
- event["stdout"].write("Available aliases: %s" %
- ", ".join(sorted(aliases.keys())))
-
- elif subcommand == "show":
- if not len(event["args_split"]) > 1:
- raise utils.EventError("Please provide an alias to remove")
-
- alias = event["args_split"][1].lower()
- setting = target.get_setting("%s%s" % (SETTING_PREFIX, alias), None)
-
- if setting == None:
- raise utils.EventError("I don't have an '%s' alias" % alias)
- prefix = event["command_prefix"]
- event["stdout"].write(f"{prefix}{alias}: {prefix}{setting}")
-
- elif subcommand == "add":
- if not len(event["args_split"]) > 2:
- raise utils.EventError("Please provide an alias and a command")
-
- alias = event["args_split"][1].lower()
- command = event["args_split"][2].lower()
- command = " ".join([command]+event["args_split"][3:])
- target.set_setting("%s%s" % (SETTING_PREFIX, alias), command)
-
- event["stdout"].write("Added '%s' alias" % alias)
-
- elif subcommand == "remove":
- if not len(event["args_split"]) > 1:
- raise utils.EventError("Please provide an alias to remove")
-
- alias = event["args_split"][1].lower()
- setting = "%s%s" % (SETTING_PREFIX, alias)
- if target.get_setting(setting, None) == None:
- raise utils.EventError("I don't have an '%s' alias" % alias)
-
- target.del_setting(setting)
- event["stdout"].write("Removed '%s' alias" % alias)
-
- else:
- raise utils.EventError("Unknown subcommand '%s'" % subcommand)