# Erebus IRC bot - Author: John Runyon
# main startup code
-#TODO: tons
-
import os, sys, select, MySQLdb, MySQLdb.cursors, time, random
import bot, config, ctlmod
self.chans = []
+ def msg(self, *args, **kwargs):
+ main.randbot().msg(self, *args, **kwargs)
+ def fastmsg(self, *args, **kwargs):
+ main.randbot().fastmsg(self, *args, **kwargs)
+
def isauthed(self):
return self.auth is not None
def quit(self):
for chan in self.chans:
self.chans.remove(chan)
+ def nickchange(self, newnick):
+ self.nick = newnick
def __str__(self): return self.nick
def __repr__(self): return "<User %r (%d)>" % (self.nick,self.glevel)
row = c.fetchone()
+ def msg(self, *args, **kwargs):
+ self.bot.msg(self, *args, **kwargs)
+ def fastmsg(self, *args, **kwargs):
+ self.bot.fastmsg(self, *args, **kwargs)
+
def levelof(self, auth):
if auth is None:
return 0
class MyCursor(MySQLdb.cursors.DictCursor):
def execute(self, *args, **kwargs):
- print "[SQL] [#] MyCursor.execute(self, %s, %s)" % (', '.join([repr(i) for i in args]), ', '.join([str(key)+"="+repr(kwargs[key]) for key in kwargs]))
+ print "%05.3f [SQL] [#] MyCursor.execute(self, %s, %s)" % (time.time() % 100000, ', '.join([repr(i) for i in args]), ', '.join([str(key)+"="+repr(kwargs[key]) for key in kwargs]))
try:
super(self.__class__, self).execute(*args, **kwargs)
except MySQLdb.MySQLError as e:
- print "[SQL] [!] MySQL error! %r" % (e)
+ print "%05.3f [SQL] [!] MySQL error! %r" % (time.time() % 100000, e)
dbsetup()
return False
return True
global cfg, main
cfg = config.Config('bot.config')
+
+ pidfile = open(cfg.pidfile, 'w')
+ pidfile.write(str(os.getpid()))
+ pidfile.close()
+
main = Erebus(cfg)
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)
dbsetup()
main.fd(fileno).parse(line)
if __name__ == '__main__':
+ try: os.rename('logfile', 'oldlog.%s' % (time.time()))
+ except: pass
+ sys.stdout = open('logfile', 'w')
+ sys.stderr = sys.stdout
setup()
while True: loop()