diff options
| author | 2018-08-31 12:55:52 +0100 | |
|---|---|---|
| committer | 2018-08-31 13:44:39 +0100 | |
| commit | b7cf524e9869828ff85954cb731f7fee98bee8d9 (patch) | |
| tree | d5d887ac82f3e50f0ea295953981363c1c5e7c5a /IRCBot.py | |
| parent | Revert "Reformat" (diff) | |
| signature | ||
Give modules event objects with "context"s, to facilitate purging all the event
hooks for a module
Diffstat (limited to 'IRCBot.py')
| -rw-r--r-- | IRCBot.py | 22 |
1 files changed, 12 insertions, 10 deletions
@@ -1,4 +1,4 @@ -import os, select, sys, threading, time, traceback +import os, select, sys, threading, time, traceback, uuid import EventManager, IRCLineHandler, IRCLogging, IRCServer import ModuleManager, Timer @@ -13,21 +13,21 @@ class Bot(object): self.servers = {} self.running = True self.poll = select.epoll() - self.modules = ModuleManager.ModuleManager(self) - self.events = EventManager.EventHook(self) + self._events = EventManager.EventHook(self) + self.modules = ModuleManager.ModuleManager(self, self._events) self.log = IRCLogging.Log(self) - self.line_handler = IRCLineHandler.LineHandler(self) + self.line_handler = IRCLineHandler.LineHandler(self, self._events) self.timers = [] - self.events.on("timer").on("reconnect").hook(self.reconnect) - self.events.on("boot").on("done").hook(self.setup_timers) + self._events.on("timer").on("reconnect").hook(self.reconnect) + self._events.on("boot").on("done").hook(self.setup_timers) def add_server(self, id, hostname, port, password, ipv4, tls, nickname, username, realname, connect=False): - new_server = IRCServer.Server(id, hostname, port, password, - ipv4, tls, nickname, username, realname, self) + new_server = IRCServer.Server(self, self._events, id, hostname, + port, password, ipv4, tls, nickname, username, realname) if not new_server.get_setting("connect", True): return - self.events.on("new").on("server").call(server=new_server) + self._events.on("new").on("server").call(server=new_server) if connect and new_server.get_setting("connect", True): self.connect(new_server) return new_server @@ -55,7 +55,9 @@ class Bot(object): self.del_setting("timer-%s" % timer.id) def add_timer(self, event_name, delay, next_due=None, id=None, persist=True, **kwargs): - timer = Timer.Timer(self, event_name, delay, next_due, **kwargs) + id = id or uuid.uuid4().hex + timer = Timer.Timer(id, self, self._events, event_name, delay, + next_due, **kwargs) if id: timer.id = id elif persist: |
