""" Multiple bots using multithreading """ __author__ = 'Rodrigo Aliste P ' import sys import socket import time from threading import Thread HOST = 'irc.valkfire.net' PORT = 6667 IDENT = 'pybot' REALNAME = 'pybot %s' class Bot(Thread): def __init__(self, nickname, realname): Thread.__init__(self) self.nickname = nickname self.realname = realname def run(self): self.connect() def connect(self): print 'Connecting to server. I\'m %s!' % self.get_realname() self.socket = socket.socket() self.socket.connect((HOST, PORT)) self.socket.send('NICK %s\r\n' % self.nickname) self.socket.send('USER %s HOST bla :%s\r\n' % (IDENT, self.get_realname())) self.loop() def disconnect(self): print 'Saliendo...' self.socket.send('QUIT :%s' % 'Saliendo...') self.socket.close() def loop(self): while 1: line = self.socket.recv(1024) if 'PING' in line: self.socket.send('PONG %s\r\n' % HOST) def get_realname(self): return REALNAME % self.realname def talk(self, channel, message): self.socket.send('PRIVMSG %s :%s\r\n' % (channel, message)) class BotHandler1(Bot): pass # write custom functions here... class BotHandler2(Bot): pass # write custom functions here... def main(): try: a = BotHandler1('rod1', '1') a.start() b = BotHandler2('rod2', '2') b.start() except: raise if __name__ == '__main__': main()