aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2019-02-16 11:23:40 +0000
committerGravatar jesopo2019-02-16 11:23:40 +0000
commit342c1afa7e03cf98dd5ed3bae4e20b575cf5bb0f (patch)
tree5fd512b6d62c62377354070f684cc8c8adbe0c18
parent'src/IRCServer.capabilities' -> 'src/IRCServer.agreed_capabilities' (diff)
signature
Keep a track of channels we're in, in case we RESUME and need to get channel
information (e.g. `chathistory`) (resume.py)
-rw-r--r--modules/resume.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/modules/resume.py b/modules/resume.py
index 4b3352dc..de3e6951 100644
--- a/modules/resume.py
+++ b/modules/resume.py
@@ -33,6 +33,7 @@ class Module(ModuleManager.BaseModule):
@utils.hook("received.resume")
def on_resume(self, event):
if event["args"][0] == "SUCCESS":
+ resume_channels = event["server"].get_setting("resume-channels", [])
self.log.info("Successfully resumed session", [])
elif event["args"][0] == "ERR":
@@ -53,7 +54,17 @@ class Module(ModuleManager.BaseModule):
@utils.hook("received.numeric.001")
def on_connect(self, event):
+ event["server"].del_setting("resume-channels")
+
new_token = self._get_token(event["server"], new=True)
if new_token:
self._set_token(event["server"], new_token)
self._del_token(event["server"], new=True)
+
+ @utils.hook("self.join")
+ def on_join(self, event):
+ resume_channels = event["server"].get_settings("resume-channels", [])
+ channel_name = event["server"].irc_lower(event["channel"].name)
+ if not channel_name in resume_channels:
+ resume_channels.append(channel_name)
+ event["server"].set_setting("resume-channels", resume_channels)