aboutsummaryrefslogtreecommitdiff
path: root/src/core_modules/ircv3_message_tracking.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-12-10 05:27:35 +0000
committerGravatar jesopo2019-12-10 05:27:35 +0000
commit638eee0d685c06d258cb55287204ca97bca7c344 (patch)
tree33442439317ae2846f1efb7674b7a3758c8990a1 /src/core_modules/ircv3_message_tracking.py
parentmove sys.exit() codes to an enum in utils.consts (diff)
signature
move core modules to src/core_modules, make them uneffected by white/black list
Diffstat (limited to 'src/core_modules/ircv3_message_tracking.py')
-rw-r--r--src/core_modules/ircv3_message_tracking.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core_modules/ircv3_message_tracking.py b/src/core_modules/ircv3_message_tracking.py
new file mode 100644
index 00000000..3f4ad88c
--- /dev/null
+++ b/src/core_modules/ircv3_message_tracking.py
@@ -0,0 +1,17 @@
+from src import ModuleManager, utils
+
+MSGID_TAG = "draft/msgid"
+READ_TAG = "+draft/read"
+DELIVERED_TAG = "+draft/delivered"
+MESSAGE_TAG_CAPS = set(["draft/message-tags-0.2", "message-tags"])
+
+class Module(ModuleManager.BaseModule):
+ @utils.hook("received.message.private")
+ @utils.hook("received.notice.private")
+ def privmsg(self, event):
+ if MSGID_TAG in event["tags"] and (
+ event["server"].agreed_capabilities & MESSAGE_TAG_CAPS):
+ target = event.get("channel", event["user"])
+ msgid = event["tags"][MSGID_TAG]
+ tags = {DELIVERED_TAG: msgid, READ_TAG: msgid}
+ target.send_tagmsg(tags)