From fd35acb01b44ce662258dbe24dc3035239b31850 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sat, 15 Jun 2019 00:49:14 +0100 Subject: [PATCH] Request draft/event-playback when available --- modules/ircv3_chathistory.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/ircv3_chathistory.py b/modules/ircv3_chathistory.py index 1607263c..36609368 100644 --- a/modules/ircv3_chathistory.py +++ b/modules/ircv3_chathistory.py @@ -3,11 +3,22 @@ from src import ModuleManager, utils TAG = utils.irc.MessageTag("msgid", "draft/msgid") +CHATHISTORY_BATCH = utils.irc.BatchType("chathistory") + +EVENTPLAYBACK_CAP = utils.irc.Capability(None, "draft/event-playback") +HISTORY_BATCH = utils.irc.BatchType("history") class Module(ModuleManager.BaseModule): + @utils.hook("received.cap.ls") + @utils.hook("received.cap.new") + def on_cap(self, event): + if EVENTPLAYBACK_CAP.available(event["capabilities"]): + return EVENTPLAYBACK_CAP.copy() + @utils.hook("received.batch.end") def batch_end(self, event): - if event["batch"].type == "chathistory": + if (CHATHISTORY_BATCH.match(event["batch"].type) or + HISTORY_BATCH.match(event["batch"].type)): target_name = event["batch"].args[0] if target_name in event["server"].channels: target = event["server"].channels.get(target_name)