diff options
| author | 2019-09-08 11:18:08 +0100 | |
|---|---|---|
| committer | 2019-09-08 11:18:08 +0100 | |
| commit | 9e0934a47e63a2e0c0e5c980792e7b4e7af29a2c (patch) | |
| tree | 453b4072e8bd9cbc43d11e944852539c7ef0b79b | |
| parent | accept "," as well as ":" as a sed target marker (diff) | |
| signature | ||
support sed ampersand syntax
| -rw-r--r-- | modules/sed.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/modules/sed.py b/modules/sed.py index 483eea5a..23c06e76 100644 --- a/modules/sed.py +++ b/modules/sed.py @@ -6,6 +6,7 @@ from src import ModuleManager, utils REGEX_SPLIT = re.compile("(?<!\\\\)/") REGEX_SED = re.compile("^(?:(\\S+)[:,] )?s/") +SED_AMPERSAND = re.compile(r"((?:^|[^\\])(?:\\\\)*)&") @utils.export("channelset", utils.BoolSetting("sed","Disable/Enable sed in a channel")) @@ -50,7 +51,6 @@ class Module(ModuleManager.BaseModule): traceback.print_exc() event["stderr"].write("Invalid regex in pattern") return - replace = utils.irc.bold(sed_split[2].replace("\\/", "/")) for_user = event["match"].group(1) if self._closest_setting(event, "sed-sender-only", False): @@ -61,6 +61,11 @@ class Module(ModuleManager.BaseModule): for_user=for_user, not_pattern=REGEX_SED) if match: + replace = sed_split[2] + replace = replace.replace("\\/", "/") + replace = re.sub(SED_AMPERSAND, match.match, replace) + replace = utils.irc.bold(replace) + new_message = re.sub(pattern, replace, match.line.message, count) if match.line.action: |
