aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/commands.py22
-rw-r--r--modules/line_handler.py5
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")