]> jfr.im git - erebus.git/commitdiff
add ctcp version reply
authorzonidjan <redacted>
Mon, 24 Aug 2015 23:09:10 +0000 (18:09 -0500)
committerzonidjan <redacted>
Mon, 24 Aug 2015 23:09:10 +0000 (18:09 -0500)
bot.py
ctlmod.py
erebus.py

diff --git a/bot.py b/bot.py
index 4b1fc2542e1f1d3abffc8a94ca2c1ddd716de5cc..ca7dc37e6f7a1ad13eed7897d9a6ee1dae6976cb 100644 (file)
--- a/bot.py
+++ b/bot.py
@@ -101,6 +101,11 @@ class Bot(object):
                pieces = msg.split()
 
                if target == self.nick:
+                       if msg[0] == "\001": #ctcp
+                               msg = msg.strip("\001")
+                               if msg == "VERSION":
+                                       self.msg(user, "\001VERSION Erebus v%d.%d - http://github.com/zonidjan/erebus" % (self.parent.APIVERSION, self.parent.RELEASE))
+                               return
                        if len(pieces) > 1:
                                chanword = pieces[1]
                                if chanword[0] == '#':
@@ -121,11 +126,9 @@ class Bot(object):
                                                        cbret = callback(self, user, chan, *pieces)
                                                        if cbret is NotImplemented:
                                                                self.msg(user, "Command not implemented.")
-                                               return
-                                       else:
-                                               return # not to bot, don't process!
+                                       return # not to bot, don't process!
                        except IndexError:
-                               return # Fix if you feel like it /BiohZn
+                               return # "message" is empty
 
                cmd = pieces[0].lower()
 
index b8244a8d6a37cc0b18aab56a339598a4e79100c4..9a30c7e2c0f54c54f7ae2110bba9eb1a3bc3b5a9 100644 (file)
--- a/ctlmod.py
+++ b/ctlmod.py
@@ -18,7 +18,7 @@ def load(parent, modname):
                if not hasattr(mod, 'modinfo'):
                        return modlib.error('no modinfo')
 
-               if 1 not in mod.modinfo['compatible']:
+               if parent.APIVERSION not in mod.modinfo['compatible']:
                        return modlib.error('API-incompatible')
 
                modules[modname] = mod
index 07fef142a2a72fc5d9b4e39e92e78afb1f4c632a..f24d60aec16888dd94d992d68ff42a2f55cb027b 100644 (file)
--- a/erebus.py
+++ b/erebus.py
@@ -5,10 +5,13 @@
 
 #TODO: tons
 
-import os, sys, select, MySQLdb, MySQLdb.cursors, time
+import os, sys, select, MySQLdb, MySQLdb.cursors, time, random
 import bot, config, ctlmod
 
 class Erebus(object):
+       APIVERSION = 1
+       RELEASE = 0
+
        bots = {}
        fds = {}
        numhandlers = {}
@@ -143,7 +146,7 @@ class Erebus(object):
        def fd(self, fileno): #get Bot() by fd/fileno
                return self.fds[fileno]
        def randbot(self): #get Bot() randomly
-               for b in self.bots.itervalues(): return b #TODO
+               return random.choice(self.bots)
 
        def user(self, _nick, justjoined=False):
                nick = _nick.lower()