It doesn't do much at all just idle's in channel and responds backs to a ^help request and then shutsdown with a ^shutdown request.
I just don't think I have done it as efficienlty as I could but I am not sure how to improve it.
If you guys notice anything it would be greatly appreciated if you would let me know what to do to improve it/ broaden my knowledge.
so I just wipped this code up this afternoon I know it might look horible but it a time thing more than anything, so here is the code.:
#!/usr/bin/python import socket, time, sys, re #search the buffer and if a PING is received return True else return False def PingFunc(buff): i = regExpression.search(buff) if i: if i.group(1) == "PING": sock.send("JOIN #random\r\n") return i.group(2) else: return False else: return False def Commands(sock,buff): i = regExpression.search(buff) if i: if i.group(9): #commands go here! #strip the command so you don't get any whitespace command = i.group(9).strip() #HELP COMMAND! if command == "^help": print "fdsf" sock.send("PRIVMSG #randomn : ^shutdown - dissconnects the bot from the server(might possibly add a recconnect after a certain time e.g '^shutdown 5' would reconnect after 5 seconds\r\n") return True #SHUTDOWN COMMAND!! if command == "^shutdown": sock.close() sock.shutdown() return "shutdown" #set the ip and port of the irc server addr = (socket.gethostbyname("irc.freenode.net"), 6667) #print the server ip just for fun print "server " + str(addr) #set the channel channel = "##newboston" username= "Gr33" #create the tcp socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #connect the socket to the server print "Connecting to server\n" sock.connect(addr) #run through 4 times count = 0 while count < 3: count += 1 #on the 3rd run through send user data so the server accepts if count == 2: sock.send("NICK " + username +"\r\n") sock.send("USER Gr33nBot 0 * :Bot\r\n") time.sleep(0.5) data = sock.recv(2044) print data #compile the regularExpression why here? I have no clue :P/>/>/> regExpression = re.compile('(PING) (\:\w+\.\w+\.\w+)|(\:\w+\.\w+\.\w+|\:\w+\!(([a-zA-Z0-9_.`~!@#$%^&*()_+=-])+)) (\w+) (\w+|\#\#\w+|\#\w+) (\:)/>/>/>(.+)',re.DOTALL) while 1: time.sleep(0.5) data = sock.recv(4096) #if the connection is closed break the loop if not data: break print data #if the server has finished sending you the MOTD k = data.find("/MOTD") if k != -1: sock.send("JOIN "+channel+"\r\n") sock.send("PRIVMSG #random :whats up bitches, Gr33nBot in the house\r\n") ping = PingFunc(data) if ping: sock.send("PING "+ping+"\r\n") else: comand = Commands(sock,data) if comand == "shutdown": break
Thanks guys n gals, un-codable.