aboutsummaryrefslogtreecommitdiff
path: root/src/IRCBot.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-09-01 08:38:22 +0100
committerGravatar jesopo2019-09-01 08:38:22 +0100
commit19d8f0b49725491a1264b7a4bc82c7ec80a98444 (patch)
treeadcd6e6efe2aadea93e5fa4c0e82f9d4cd2d5857 /src/IRCBot.py
parent'usage' does not exist (diff)
signature
store and expose reconnection timers on IRCBot.reconnections
Diffstat (limited to 'src/IRCBot.py')
-rw-r--r--src/IRCBot.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/IRCBot.py b/src/IRCBot.py
index 52da3b9d..526484b8 100644
--- a/src/IRCBot.py
+++ b/src/IRCBot.py
@@ -40,6 +40,7 @@ class Bot(object):
self.start_time = time.time()
self.running = False
self.servers = {}
+ self.reconnections = {}
self._event_queue = queue.Queue() # type: typing.Queue[TriggerEvent]
@@ -217,6 +218,8 @@ class Bot(object):
if not self.reconnect(event["server_id"],
event.get("connection_params", None)):
event["timer"].redo()
+ else:
+ del self.reconnections[event["server_id"]]
def reconnect(self, server_id: int, connection_params: typing.Optional[
utils.irc.IRCConnectionParameters]=None) -> bool:
args = {} # type: typing.Dict[str, str]
@@ -387,8 +390,11 @@ class Bot(object):
if not self.get_server_by_id(server.id):
reconnect_delay = self.config.get("reconnect-delay", 10)
- self._timers.add("reconnect", reconnect_delay,
+
+ timer = self._timers.add("reconnect", reconnect_delay,
server_id=server.id)
+ self.reconnections[server.id] = timer
+
self.log.warn(
"Disconnected from %s, reconnecting in %d seconds",
[str(server), reconnect_delay])