#!/usr/bin/python ############################# #Simple IRC bot # # # ############################# import sys import socket import string import os #import time #import pdb #pdb.set_trace() HOST = 'orb.dev.prognet.com' PORT = 6667 NICK = 'autobota' IDENT = 'autobota' REALNAME = 'autobota' OWNER = 'momo_' CHAN = '#ClientQA' readbuffer = '' soc = socket.socket() soc.connect((HOST, PORT)) soc.send('NICK %s\r\n' % NICK) soc.send('USER %s %s bla :%s\r\n' % (IDENT, HOST, REALNAME)) soc.send('JOIN %s\r\n' % CHAN ) def parsemsg(msg): complete = msg[1:].split(':',1) info = complete[0].split(' ') msgpart = complete[1] sender = info[0].split('!') if msgpart[0] == '.' and sender[0] == OWNER: cmd = msgpart[1:].split(' ') if cmd[0] == 'op': soc.send('MODE %s +o %s\r\n' % (info[2], cmd[1])) if cmd[0] == 'deop': soc.send('MODE %s -o %s\r\n' % (info[2], cmd[1])) if cmd[0] == 'voice': soc.send('MODE %s +v %s\r\n' % (info[2], cmd[1])) if cmd[0] == 'devoice': soc.send('MODE %s -v %s\r\n' % (info[2], cmd[1])) if cmd[0] == 'sys': syscmd(msgpart[1:],info[2]) if msgpart[0] == '@' and sender[0] == OWNER: cmd = msgpart[1:] soc.send('%s\r\n' % cmd) print 'cmd=%s' % cmd def syscmd(commandline,channel): cmd = commandline.replace('sys ','') cmd = cmd.rstrip() os.system(cmd+' >temp.txt') ot = a.read() ot.replace('n', '|') a.close() soc.send('PRIVMSG %s :%s\r\n' % (CHAN, ot)) return 0 while 1: readbuffer = readbuffer+soc.recv(512) #inbound = string.split(readbuffer, '\n') #readbuffer = inbound.pop() if readbuffer.find('PRIVMSG') != -1: parsemsg(readbuffer) # for line in inbound: # parsemsg(line) readbuffer = string.rstrip(readbuffer) readbuffer = string.split(readbuffer) print readbuffer if (readbuffer[0] == 'PING'): soc.send('PONG %s\r\n' % readbuffer[1])