From 5c7026886de36307b8852e8754d27a17cf9c78d6 Mon Sep 17 00:00:00 2001 From: jesopo Date: Fri, 17 Jan 2020 15:58:37 +0000 Subject: [PATCH] overwrite BufferLine.timestamp with ircv3 server-time when available --- src/core_modules/ircv3_server_time.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/core_modules/ircv3_server_time.py b/src/core_modules/ircv3_server_time.py index c9790d95..270d56d9 100644 --- a/src/core_modules/ircv3_server_time.py +++ b/src/core_modules/ircv3_server_time.py @@ -5,8 +5,21 @@ TAG = utils.irc.MessageTag("time") @utils.export("cap", CAP) class Module(ModuleManager.BaseModule): + def _get(self, tags): + return TAG.get_value(tags) + @utils.hook("raw.received") def raw_recv(self, event): - server_time = TAG.get_value(event["line"].tags) + server_time = self._get(event["line"].tags) if not server_time == None: event["server"].set_setting("last-server-time", server_time) + + @utils.hook("received.message.private") + @utils.hook("received.message.channel") + @utils.hook("received.notice.private") + @utils.hook("received.notice.channel") + def message(self, event): + server_time = self._get(event["line"].tags) + if not server_time == None: + dt = utils.datetime.iso8601_parse(server_time) + event["buffer_line"].timestamp = dt