import socket; class NotRunningException (Exception): pass; class IRCBot: # The IRC bot class. This can be reused, and will be the superclass of the actual minerbot. def __init__(self, name, user, realname, owner): self.name = name; self.owner = owner; self.user = user; self.realname = realname; self.running = False; def begin(self, server, port, channels): self.irc = socket.socket(); self.running = True; self.irc.connect((server, port)); self.irc.send("NICK " + self.name + "\r\n"); self.irc.send("USER " + self.user + " 8 * " + self.realname + "\r\n"); for chan in channels: self.irc.send("JOIN " + chan + "\r\n"); while True: data = self.irc.recv(4096); #print data; if data.find("PING") != -1: self.irc.send("PONG " + data.split()[1] + "\r\n"); elif data.find("PRIVMSG") != -1: self.spokento(data) def spokento(self, data): if not self.running: raise Exception("spokento was prematurely called."); data_parts = data.split(" ",3); id = data_parts[0]; nick = id.split("!")[0][1:]; message = data_parts[3][1:-2]; print(nick + ": " + message); if nick == self.owner and message.find("!colortest") == 0: self.irc.send("PRIVMSG "+data_parts[2]+" :\x034,1yo\x0f")