aboutsummaryrefslogtreecommitdiff
path: root/src/core_modules/ircv3_server_time.py
diff options
context:
space:
mode:
authorGravatar jesopo2020-01-17 15:58:37 +0000
committerGravatar jesopo2020-01-17 15:58:37 +0000
commit5c7026886de36307b8852e8754d27a17cf9c78d6 (patch)
treebfec90d4633464fbfd0b1a7aa1e9a66c1962b98c /src/core_modules/ircv3_server_time.py
parentadd BufferLine.timestamp (`datetime.datetime` object) (diff)
signature
overwrite BufferLine.timestamp with ircv3 server-time when available
Diffstat (limited to 'src/core_modules/ircv3_server_time.py')
-rw-r--r--src/core_modules/ircv3_server_time.py15
1 files changed, 14 insertions, 1 deletions
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