X-Git-Url: https://jfr.im/git/erebus.git/blobdiff_plain/2a1a69a65b1d4483a90d5acc4ebc14a7589cd814..b297b1ca78a11b28bf6403fcb93f6b769033d49c:/erebus.py diff --git a/erebus.py b/erebus.py index 3091760..2d4cc1c 100644 --- a/erebus.py +++ b/erebus.py @@ -11,9 +11,9 @@ import bot, config, ctlmod class Erebus(object): bots = {} fds = {} - mods = {} numhandlers = {} msghandlers = {} + chanhandlers = {} users = {} chans = {} @@ -52,6 +52,9 @@ class Erebus(object): self.chans.append(chan) def part(self, chan): self.chans.remove(chan) + def quit(self): + for chan in self.chans: + self.chans.remove(chan) def __str__(self): return self.nick def __repr__(self): return "" % (self.nick,self.glevel) @@ -140,16 +143,16 @@ class Erebus(object): def randbot(self): #get Bot() randomly for b in self.bots.itervalues(): return b #TODO - def user(self, nick, justjoined=False): - nick = nick.lower() + def user(self, _nick, justjoined=False): + nick = _nick.lower() if nick in self.users: return self.users[nick] else: - user = self.User(nick) + user = self.User(_nick) self.users[nick] = user if justjoined: - self.randbot().conn.send("WHO %s %%ant,2" % (nick)) + self.randbot().conn.send("WHO %s n%%ant,2" % (nick)) return user def channel(self, name): #get Channel() by name @@ -174,6 +177,9 @@ class Erebus(object): if bot.conn.state == 0: bot.connect() + def module(self, name): + return ctlmod.modules[name] + #bind functions def hook(self, word, handler): try: @@ -203,9 +209,9 @@ class Erebus(object): def hookchan(self, chan, handler): try: - self.chanhandlers[word].append(handler) + self.chanhandlers[chan].append(handler) except: - self.chanhandlers[word] = [handler] + self.chanhandlers[chan] = [handler] def unhookchan(self, chan, handler): if chan in self.chanhandlers and handler in self.chanhandlers[chan]: self.chanhandlers[chan].remove(handler)