rendered paste body"""Example of asynchronous IRC bots"""__author__ = 'Rodrigo Aliste P (raliste@googlemail.com)'import asyncoreimport asynchatimport socketclass BaseChat(asynchat.async_chat): master_server = None def __init__(self, server, **kwargs): asynchat.async_chat.__init__(self) self.set_terminator("\r\n") self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.connect(server) if kwargs: # do something... pass def handle_connect(self): pass def handle_expt(self): self.close() def collect_incoming_data(self, data): pass def found_terminator(self): pass def set_master_server(self, server_class): self.master_server = server_class def talk(self, chan, msg): self.push("PRIVMSG %s :%s\r\n" % (chan, msg))NICK1 = 'rod1'NICK2 = 'rod2'IDENT = 'ol'BOTHOST = 'il'REALNAME = 'BotServer'class IrcServer1(BaseChat): def handle_connect(self): self.push("NICK %s\r\nUSER %s %s bla :%s\r\n" % (NICK1, IDENT, BOTHOST, REALNAME))class IrcServer2(BaseChat): def handle_connect(self): self.push("NICK %s\r\nUSER %s %s bla :%s\r\n" % (NICK2, IDENT, BOTHOST, REALNAME)) def collect_incoming_data(self, data): if 'hola' in data: print "Talking to master server..." self.master_server.talk('#valkfire', 'Recibiendo desde rod2') self.master_server.talk('#valkfire', data.split(':')[-1].upper())def main(): irc1 = IrcServer1(('irc.valkfire.net', 6667)) irc2 = IrcServer2(('irc.valkfire.net', 6667)) irc2.set_master_server(irc1) asyncore.loop() if __name__ == '__main__': main()