aboutsummaryrefslogtreecommitdiff
path: root/src/core_modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/core_modules')
-rw-r--r--src/core_modules/aliases.py32
1 files changed, 7 insertions, 25 deletions
diff --git a/src/core_modules/aliases.py b/src/core_modules/aliases.py
index 6746837a..277a4922 100644
--- a/src/core_modules/aliases.py
+++ b/src/core_modules/aliases.py
@@ -1,35 +1,17 @@
#--depends-on commands
-import re
from src import EventManager, ModuleManager, utils
-REGEX_ARG_NUMBER = re.compile(r"\$(?:(\d+)(-?)|(-))")
-REGEX_ARG_NAME = re.compile(r"\$([^\$]+)\$")
SETTING_PREFIX = "command-alias-"
class Module(ModuleManager.BaseModule):
def _arg_replace(self, s, args_split, kwargs):
- parts = s.split("$$")
- for i, part in enumerate(parts):
- for match in REGEX_ARG_NUMBER.finditer(part):
- 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)
- for match in REGEX_ARG_NAME.finditer(part):
- key = match.group(1).upper()
- if key in kwargs:
- parts[i] = part.replace(match.group(0), kwargs[key])
- return "$".join(parts)
+ vars = {}
+ for i in range(len(args_split)):
+ vars[str(i)] = args_split[i]
+ vars["%d-" % i] = " ".join(args_split[i:])
+ vars["-"] = " ".join(args_split)
+ vars.update(kwargs)
+ return utils.parse.format_token_replace(s, vars)
def _get_alias(self, server, target, command):
setting = "%s%s" % (SETTING_PREFIX, command)