]> jfr.im git - erebus.git/blobdiff - erebus.py
trivia v1 done
[erebus.git] / erebus.py
index d96ae0becb650b4a93cca93c7b99aa247362ee0c..2d4cc1c9f57c9c707d094da31684253d698c4ac7 100644 (file)
--- 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 "<User %r (%d)>" % (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:
@@ -201,6 +207,18 @@ class Erebus(object):
        def getnumhook(self, word):
                return self.numhandlers[word]
 
+       def hookchan(self, chan, handler):
+               try:
+                       self.chanhandlers[chan].append(handler)
+               except:
+                       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)
+       def haschanhook(self, chan):
+               return chan in self.chanhandlers and len(self.chanhandlers[chan]) != 0
+       def getchanhook(self, chan):
+               return self.chanhandlers[chan]
 
 
 class MyCursor(MySQLdb.cursors.DictCursor):