All pastes #1513294 Raw Edit

Unnamed

public python v1 · immutable
#1513294 ·published 2009-07-31 06:12 UTC
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()