aboutsummaryrefslogtreecommitdiff
path: root/modules/message_tracking.py
blob: 3f4ad88c44cbb442510203988fc8167871903963 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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)