rendered paste bodyimport socketimport MySQLdbimport sysimport reclass irc: def __init__(self): self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.nick = "pyirclib4" self.host = None self.hmsg = None def send(self, data): self.socket.send("%s\r\n" % data) def connect(self, server, port=6667): self.socket.connect(("%s" % server, port)) self.send("NICK " + self.nick) self.send("USER %s %s None :%s" % ("pyirclib", "irc.freenode.net", "pybot")) buffer = "" while(1): buffer += self.socket.recv(1024) data = buffer.split("\n") buffer = data.pop() self.decode(data) def decode(self, data): for element in data: words = element.split(" ") #print element if words[0] == self.hmsg: print "Server message" if self.__dict__.has_key("handle_%s" % words[1]): self.__dict__["handle_%s" % words[0]](element, words) else: print "Not Server message" print "handle_%s" % words[0] print self.__dict__ if self.__dict__.has_key("handle_%s" % words[0]): print "Found handler" self.__dict__["handle_%s" % words[0]](element, words) def handle_PING(self, raw, data): self.send("PONG " + data[1]) print "PING PONG" def handle_NOTICE(self, raw, data): print 'Notice' if not self.host: re = r'\[.*?\]' matches = re.search(re).match(raw) if matches: self.host = matches.group()[1:-1] self.hmsg = ":%s" % self.host else: print raw def handle_ERROR(raw, data): print "Error" print raw sys.exit(0)def handle_NOTICE(raw, data): print rawdef handle_252(raw, data): print rawclient = irc()client.handle_ERROR = handle_ERROR#client.handle_NOTICE = handle_NOTICEclient.handle_252 = handle_252client.connect("irc.freenode.net", 6667)