import socket, sys, time, threading, os, random
from collections import deque
+MAXLEN = 400 # arbitrary max length of a command generated by Bot.msg functions
+
class MyTimer(threading._Timer):
def __init__(self, *args, **kwargs):
threading._Timer.__init__(self, *args, **kwargs)
self.conn.send("NICK %s" % (self.permnick))
def parse(self, line):
- self.log('I', line)
+ if self.parent.cfg.getboolean('debug', 'io'):
+ self.log('I', line)
pieces = line.split()
# dispatch dict
pass # don't care about other modes
def __debug_cbexception(self, source, *args, **kwargs):
- if int(self.parent.cfg.get('debug', 'cbexc', default=0)) == 1:
+ if self.parent.cfg.getboolean('debug', 'cbexc'):
self.conn.send("PRIVMSG %s :%09.3f \ 34\1f!!! CBEXC\1f\ 3 %s" % (self.parent.cfg.get('debug', 'owner'), time.time() % 100000, source))
__import__('traceback').print_exc()
self.log('!', "CBEXC %s %r %r" % (source, args, kwargs))
self.msg(user, "You don't have enough access to run that command.")
def __debug_nomsg(self, target, msg):
- if int(self.parent.cfg.get('debug', 'nomsg', default=0)) == 1:
+ if self.parent.cfg.getboolean('debug', 'nomsg'):
self.conn.send("PRIVMSG %s :%09.3f \ 34\1f!!! NOMSG\1f\ 3 %r, %r" % (self.parent.cfg.get('debug', 'owner'), time.time() % 100000, target, msg))
self.log('!', "!!! NOMSG")
# print "%09.3f %s [!] %s" % (time.time() % 100000, self.nick, "!!! NOMSG")
def msg(self, target, msg):
if self.parent.cfg.getboolean('erebus', 'nofakelag'): return self.fastmsg(target, msg)
cmd = self._formatmsg(target, msg)
+ if len(cmd) > MAXLEN: return False
if self.conn.exceeded or self.conn.bytessent+len(cmd) >= self.conn.recvq:
self.msgqueue.append(cmd)
else:
self.conn.send(cmd)
self.conn.exceeded = True
+ return True
def slowmsg(self, target, msg):
if self.parent.cfg.getboolean('erebus', 'nofakelag'): return self.fastmsg(target, msg)
cmd = self._formatmsg(target, msg)
+ if len(cmd) > MAXLEN: return False
if self.conn.exceeded or self.conn.bytessent+len(cmd) >= self.conn.recvq:
self.slowmsgqueue.append(cmd)
else:
self.conn.send(cmd)
self.conn.exceeded = True
+ return True
def fastmsg(self, target, msg):
- self.conn.send(self._formatmsg(target, msg))
+ cmd = self._formatmsg(target, msg)
+ if len(cmd) > MAXLEN: return False
+ self.conn.send(cmd)
self.conn.exceeded = True
+ return True
def _formatmsg(self, target, msg):
if target is None or msg is None:
return self.state == 2
def send(self, line):
- self.parent.log('O', line)
+ if self.parent.cfg.getboolean('debug', 'io'):
+ self.parent.log('O', line)
# print "%09.3f %s [O] %s" % (time.time() % 100000, self.parent.nick, line)
self.bytessent += len(line)
self._write(line)