# Erebus IRC bot - Author: John Runyon
# main startup code
+from __future__ import print_function
+
import os, sys, select, MySQLdb, MySQLdb.cursors, time, random, gc
import bot, config, ctlmod
class Erebus(object): #singleton to pass around
- APIVERSION = 2
+ APIVERSION = 0
RELEASE = 0
bots = {}
self.nick = newnick
def __str__(self): return self.nick
- def __repr__(self): return "<User %r (%d)>" % (self.nick,self.glevel)
+ def __repr__(self): return "<User %r (%d)>" % (self.nick, self.glevel)
class Channel(object):
def __init__(self, name, bot):
def fd(self, fileno): #get Bot() by fd/fileno
return self.fds[fileno]
def randbot(self): #get Bot() randomly
- return self.bots[random.choice(self.bots.keys())]
+ return self.bots[random.choice(list(self.bots.keys()))]
def user(self, _nick, justjoined=False, create=True):
nick = _nick.lower()
return select.select(self.fdlist, [], [])[0]
def connectall(self):
- for bot in self.bots.itervalues():
+ for bot in self.bots.values():
if bot.conn.state == 0:
bot.connect()
return ctlmod.modules[name]
def log(self, source, level, message):
- print "%09.3f %s [%s] %s" % (time.time() % 100000, source, level, message)
+ print("%09.3f %s [%s] %s" % (time.time() % 100000, source, level, message))
def getuserbyauth(self, auth):
- return [u for u in self.users.itervalues() if u.auth == auth.lower()]
+ return [u for u in self.users.values() if u.auth == auth.lower()]
#bind functions
def hook(self, word, handler):
cfg = config.setup('bot.config')
- if int(cfg.get('debug', 'gc', default=0)) == 1:
+ if cfg.getboolean('debug', 'gc'):
gc.set_debug(gc.DEBUG_LEAK)
pidfile = open(cfg.pidfile, 'w')