From f6179c46ab0d70db2b5407f9e5c42ce8f7b2d4bf Mon Sep 17 00:00:00 2001 From: jesopo Date: Fri, 15 Feb 2019 10:26:33 +0000 Subject: [PATCH] Actually grab resume timestamp before it's overwritten (resume.py) --- modules/resume.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/resume.py b/modules/resume.py index 9f10086b..4b3352dc 100644 --- a/modules/resume.py +++ b/modules/resume.py @@ -15,6 +15,11 @@ class Module(ModuleManager.BaseModule): def _get_timestamp(self, server): return server.get_setting("last-read", None) + @utils.hook("new.server") + def new_server(self, event): + resume_timestamp = self._get_timestamp(event["server"]) + event["server"]._resume_timestamp = resume_timestamp + @utils.hook("received.cap.ls") def on_cap_ls(self, event): if CAP in event["capabilities"]: @@ -29,18 +34,21 @@ class Module(ModuleManager.BaseModule): def on_resume(self, event): if event["args"][0] == "SUCCESS": self.log.info("Successfully resumed session", []) + elif event["args"][0] == "ERR": self.log.info("Failed to resume session: %s", [event["args"][1]]) + elif event["args"][0] == "TOKEN": token = self._get_token(event["server"]) self._set_token(event["server"], event["args"][1], new=True) if token: - timestamp = self._get_timestamp(event["server"]) + timestamp = event["server"]._resume_timestamp event["server"].send("RESUME %s%s" % (token, " %s" % timestamp if timestamp else "")) event["server"].cap_started = False + event["server"].capability_done("resume") @utils.hook("received.numeric.001")