aboutsummaryrefslogtreecommitdiff
path: root/modules/ircv3_message_tracking.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-06-03 12:44:04 +0100
committerGravatar jesopo2019-06-03 12:44:04 +0100
commit9a8b345c53e852d7092197cee084d0d3c02bc0ff (patch)
tree408c6833c2f4de7198c354043c8ca265c0616901 /modules/ircv3_message_tracking.py
parentCheck from_self, not if target==is_own_nickname, use from_self when adding to (diff)
signature
Prefix names for all IRCv3 modules with "ircv3_"
Diffstat (limited to 'modules/ircv3_message_tracking.py')
-rw-r--r--modules/ircv3_message_tracking.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/modules/ircv3_message_tracking.py b/modules/ircv3_message_tracking.py
new file mode 100644
index 00000000..3f4ad88c
--- /dev/null
+++ b/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)