From bc12c7789199d2e93513ea018badaf87815ae7e6 Mon Sep 17 00:00:00 2001 From: jesopo Date: Tue, 19 Apr 2016 13:25:50 +0100 Subject: did what I said I would sooner than I thought I would. centralised persisting timers through bot restarts. --- IRCServer.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'IRCServer.py') diff --git a/IRCServer.py b/IRCServer.py index 388843aa..9c4bc6de 100644 --- a/IRCServer.py +++ b/IRCServer.py @@ -41,6 +41,7 @@ class Server(object): context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) self.socket = context.wrap_socket(self.socket) self.cached_fileno = self.socket.fileno() + self.bot.events.on("timer").on("rejoin").hook(self.try_rejoin) def __repr__(self): return "%s:%s%s" % (self.target_hostname, "+" if self.tls else "", self.port) @@ -177,11 +178,12 @@ class Server(object): self.send("PING :%s" % nonce) def send_pong(self, nonce="hello"): self.send("PONG :%s" % nonce) - def try_rejoin(self, timer, channel_name, key): - if channel_name in self.attempted_join: - self.send_join(channel_name, key) + def try_rejoin(self, event): + if event["server_id"] == self.id and event["channel_name" + ] in self.attempted_join: + self.send_join(event["channel_name"], event["key"]) def send_join(self, channel_name, key=None): - self.attempted_join[channel_name.lower()] = None + self.attempted_join[channel_name.lower()] = key self.send("JOIN %s%s" % (channel_name, "" if key == None else " %s" % key)) def send_part(self, channel_name, reason=None): -- cgit v1.3.1-10-gc9f91