All pastes #820213 Raw Edit

timmeh

public python v1 · immutable
·published 2007-12-17 12:14 UTC
rendered paste body
import 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)