From 9788f955655a5729e295e8c8b71f1aced119ddff Mon Sep 17 00:00:00 2001 From: Jonathan Harker Date: Mon, 31 May 2010 01:05:11 +1200 Subject: [PATCH] Added botcommon.py --- botcommon.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 botcommon.py diff --git a/botcommon.py b/botcommon.py new file mode 100644 index 0000000..1476ca5 --- /dev/null +++ b/botcommon.py @@ -0,0 +1,53 @@ +"""\ +Common bits and pieces used by the various bots. +""" + +import sys +import os +import time +from threading import Thread, Event + + +class OutputManager(Thread): + def __init__(self, connection, delay=.5): + Thread.__init__(self) + self.setDaemon(1) + self.connection = connection + self.delay = delay + self.event = Event() + self.queue = [] + + def run(self): + while 1: + self.event.wait() + while self.queue: + msg,target = self.queue.pop(0) + self.connection.privmsg(target, msg) + time.sleep(self.delay) + self.event.clear() + + def send(self, msg, target): + self.queue.append((msg.strip(),target)) + self.event.set() + + +def trivial_bot_main(klass): + if len(sys.argv) != 4: + botname = os.path.basename(sys.argv[0]) + print "Usage: %s " % botname + sys.exit(1) + + s = sys.argv[1].split(":", 1) + server = s[0] + if len(s) == 2: + try: + port = int(s[1]) + except ValueError: + print "Error: Erroneous port." + sys.exit(1) + else: + port = 6667 + channel = sys.argv[2] + nickname = sys.argv[3] + + klass(channel, nickname, server, port).start()