]> jfr.im git - erebus.git/blobdiff - erebus.py
Spotify module added
[erebus.git] / erebus.py
index 7c7dc920e8fad4b2ddc9094e5bce273de4d261cb..38e865dd6429727590a989cf3d9deb4bbc50a716 100644 (file)
--- a/erebus.py
+++ b/erebus.py
@@ -12,6 +12,7 @@ class Erebus(object):
        bots = {}
        fds = {}
        mods = {}
+       numhandlers = {}
        msghandlers = {}
        users = {}
        chans = {}
@@ -148,14 +149,31 @@ class Erebus(object):
 
        #bind functions
        def hook(self, word, handler):
-               self.msghandlers[word] = handler
-       def unhook(self, word):
-               del self.msghandlers[word]
+               try:
+                       self.msghandlers[word].append(handler)
+               except:
+                       self.msghandlers[word] = [handler]
+       def unhook(self, word, handler):
+               if word in self.msghandlers and handler in self.msghandlers[word]:
+                       self.msghandlers[word].remove(handler)
        def hashook(self, word):
-               return word in self.msghandlers
+               return word in self.msghandlers and len(self.msghandlers[word]) != 0
        def gethook(self, word):
                return self.msghandlers[word]
 
+       def hooknum(self, word, handler):
+               try:
+                       self.numhandlers[word].append(handler)
+               except:
+                       self.numhandlers[word] = [handler]
+       def unhooknum(self, word, handler):
+               if word in self.numhandlers and handler in self.numhandlers[word]:
+                       self.numhandlers[word].remove(handler)
+       def hasnumhook(self, word):
+               return word in self.numhandlers and len(self.numhandlers[word]) != 0
+       def getnumhook(self, word):
+               return self.numhandlers[word]
+
 def setup():
        global cfg, main
 
@@ -164,6 +182,7 @@ def setup():
 
        autoloads = [mod for mod, yes in cfg.items('autoloads') if int(yes) == 1]
        for mod in autoloads:
+               print "Loading %s" % (mod)
                ctlmod.load(main, mod)
 
        main.db = MySQLdb.connect(host=cfg.dbhost, user=cfg.dbuser, passwd=cfg.dbpass, db=cfg.dbname, cursorclass=MySQLdb.cursors.DictCursor)