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[0])
#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.

New Topic/Question
Reply



MultiQuote


|