aboutsummaryrefslogtreecommitdiff
path: root/src/IRCBot.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-10-08 13:49:43 +0100
committerGravatar jesopo2019-10-08 13:49:55 +0100
commit7a5edccb982a9aa3d1d1557d5928d03046bda29e (patch)
treecfa252ad88198d0ff2f8fd593916818e373789b9 /src/IRCBot.py
parentrefactor anything that effects event poll timeout in to PollHook objects (diff)
signature
transient timers shouldn't use the event system
Diffstat (limited to 'src/IRCBot.py')
-rw-r--r--src/IRCBot.py19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/IRCBot.py b/src/IRCBot.py
index b03f2037..5e843054 100644
--- a/src/IRCBot.py
+++ b/src/IRCBot.py
@@ -1,7 +1,7 @@
import enum, queue, os, queue, select, socket, sys, threading, time, traceback
import typing, uuid
from src import EventManager, Exports, IRCServer, Logging, ModuleManager
-from src import PollHook, Socket, utils
+from src import PollHook, Socket, Timers, utils
VERSION = "v1.11.1"
SOURCE = "https://git.io/bitbot"
@@ -83,8 +83,6 @@ class Bot(object):
self._poll_timeouts.append(ListLambdaPollHook(
lambda: self.servers.values(), self._throttle_timeout))
- self._events.on("timer.reconnect").hook(self._timed_reconnect)
-
def _throttle_timeout(self, server: IRCServer.Server):
if server.socket.waiting_throttled_send():
return server.socket.send_throttle_timeout()
@@ -216,12 +214,13 @@ class Bot(object):
del self.servers[server.fileno()]
self._trigger_both()
- def _timed_reconnect(self, event: EventManager.Event):
- if not self.reconnect(event["server_id"],
- event.get("connection_params", None)):
- event["timer"].redo()
+ def _timed_reconnect(self, timer: Timers.Timer):
+ server_id = timer.kwargs["server_id"]
+ params = timer.kwargs.get("connection_params", None)
+ if not self.reconnect(server_id, params):
+ timer.redo()
else:
- del self.reconnections[event["server_id"]]
+ del self.reconnections[server_id]
def reconnect(self, server_id: int, connection_params: typing.Optional[
utils.irc.IRCConnectionParameters]=None) -> bool:
args = {} # type: typing.Dict[str, str]
@@ -395,8 +394,8 @@ class Bot(object):
if not self.get_server_by_id(server.id):
reconnect_delay = self.config.get("reconnect-delay", 10)
- timer = self._timers.add("reconnect", reconnect_delay,
- server_id=server.id)
+ self.timers.add("timed-reconnect", self._timed_reconnect,
+ reconnect_delay, server_id=server.id)
self.reconnections[server.id] = timer
self.log.warn(