# ----------------------------------------------------------------- # Libraries. # ----------------------------------------------------------------- import sys import socket import string import time import datetime # ----------------------------------------------------------------- # Bot settings. # ----------------------------------------------------------------- HOST = 'irc.irc-hispano.org' # Irc server. PORT = 6667 # Irc port. NICK = 'BotNick' # Bot nickname. IDENT = 'BotIdent' # Bot ident. RNAME = 'BotName' # Bot realname. OWNER = 'BotOwner' # Owner nick. CHAN = '#botchannel' # Default channel. # ----------------------------------------------------------------- # Connection. # ----------------------------------------------------------------- irc = socket.socket() irc.connect((HOST,PORT)) irc.send("NICK %s\r\n" % NICK) irc.send("USER %s %s bla :%s\r\n" % (IDENT,HOST,RNAME)) # ----------------------------------------------------------------- # Parse message. # ----------------------------------------------------------------- def ircParse(msg): # Get command. cmd = string.join(msg[3:]).split(' ') cmd = cmd[0] # Get command sender. nick = msg[0].split('!') nick = nick[0].split(':') sender = nick[1] # Get command argv if exists. argv = "" if(len(msg) >= 5): argv = msg[4] # Get channel where the command was called. channel = msg[2] # Commands. if cmd ==':.meop': irc.send('MODE ' + channel +' +o '+ sender + '\r\n') if cmd ==':.medeop': irc.send('MODE ' + channel +' -o '+ sender + '\r\n') if cmd ==':.mevoice': irc.send('MODE ' + channel +' +v '+ sender + '\r\n') if cmd ==':.medevoice': irc.send('MODE ' + channel +' -v '+ sender + '\r\n') if cmd ==':.op': irc.send('MODE ' + channel +' +o '+ argv + '\r\n') if cmd ==':.deop': irc.send('MODE ' + channel +' -o '+ argv + '\r\n') if cmd ==':.voice': irc.send('MODE ' + channel +' +v '+ argv + '\r\n') if cmd ==':.devoice': irc.send('MODE ' + channel +' -v '+ argv + '\r\n') if cmd ==':.topic': irc.send('TOPIC ' + channel +' '+ argv + '\r\n') # ----------------------------------------------------------------- # Main loop. # ----------------------------------------------------------------- loop = "" while 1: loop = loop + irc.recv(1024) raw = string.split(loop, "\n") loop = raw.pop() for ircMessage in raw: ircMessage = string.split(string.rstrip(ircMessage)) print ircMessage if(ircMessage[1]=='PRIVMSG'): ircParse(ircMessage) if(ircMessage[1]=='376'): irc.send('JOIN ' + CHAN + ' \r\n') if(ircMessage[0]=="PING"): irc.send("PONG %s\r\n" % ircMessage[1]) print datetime.datetime.now() , " :: pong sent"