aboutsummaryrefslogtreecommitdiff
path: root/IRCServer.py
diff options
context:
space:
mode:
authorGravatar jesopo2016-04-19 13:25:50 +0100
committerGravatar jesopo2016-04-19 13:25:50 +0100
commitbc12c7789199d2e93513ea018badaf87815ae7e6 (patch)
treee7a3204ffda43fcf25584f2e310fea052cd1e441 /IRCServer.py
parententirely reworked the timer system to work with the event system, will eventu... (diff)
did what I said I would sooner than I thought I would. centralised persisting timers through bot restarts.
Diffstat (limited to 'IRCServer.py')
-rw-r--r--IRCServer.py10
1 files changed, 6 insertions, 4 deletions
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):