diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/commands.py | 22 | ||||
| -rw-r--r-- | modules/line_handler.py | 5 |
2 files changed, 20 insertions, 7 deletions
diff --git a/modules/commands.py b/modules/commands.py index 9aeb26bb..9c217920 100644 --- a/modules/commands.py +++ b/modules/commands.py @@ -9,15 +9,18 @@ OUT_CUTOFF = 400 REGEX_CUTOFF = re.compile("^.{1,%d}(?:\s|$)" % OUT_CUTOFF) class Out(object): - def __init__(self, module_name, target): + def __init__(self, module_name, target, msgid): self.module_name = module_name self.target = target self._text = "" self.written = False + self._msgid = None + def write(self, text): self._text += text self.written = True return self + def send(self): if self.has_text(): text = self._text @@ -29,10 +32,17 @@ class Out(object): ].decode("utf8").lstrip()) else: self._text = "" - self.target.send_message(text, prefix=Utils.FONT_RESET + "[%s] " % - self.prefix()) + + tags = {} + if self._msgid: + tags["reply"] = self._msgid + + self.target.send_message(text, + prefix=Utils.FONT_RESET + "[%s] " % self.prefix(), tags=tags) + def set_prefix(self, prefix): self.module_name = prefix + def has_text(self): return bool(self._text) @@ -93,8 +103,10 @@ class Module(ModuleManager.BaseModule): module_name = "" if hasattr(hook.function, "__self__"): module_name = hook.function.__self__._name - stdout, stderr = StdOut(module_name, target), StdErr(module_name, - target) + + msgid = event["tags"].get("msgid", None) + stdout = StdOut(module_name, target, msgid) + stderr = StdErr(module_name, target, msgid) returns = self.events.on("preprocess.command").call_unsafe( hook=hook, user=event["user"], server=event["server"], diff --git a/modules/line_handler.py b/modules/line_handler.py index 9d8548a6..1f0fddee 100644 --- a/modules/line_handler.py +++ b/modules/line_handler.py @@ -414,11 +414,12 @@ class Module(ModuleManager.BaseModule): channel = event["server"].get_channel(event["args"][0]) self.events.on("received.message.channel").call( user=user, channel=channel, **kwargs) - channel.buffer.add_line(user.nickname, message, action) + channel.buffer.add_line(user.nickname, message, action, + event["tags"]) elif event["server"].is_own_nickname(target): self.events.on("received.message.private").call( user=user, **kwargs) - user.buffer.add_line(user.nickname, message, action) + user.buffer.add_line(user.nickname, message, action, event["tags"]) # we've received a notice @Utils.hook("raw.notice") |
