rendered paste body# -----------------------------------------------------------------
# Libraries.
# -----------------------------------------------------------------
import sys
import socket
import string
import time
import datetime
# -----------------------------------------------------------------
# Bot settings.
# -----------------------------------------------------------------
HOST = 'dune.irc-hispano.org' # Irc server.
PORT = 6667 # Irc port.
NICK = 'ArchBot' # Bot nickname.
IDENT = 'ArchBot' # Bot ident.
RNAME = 'ArchBot' # Bot realname.
OWNER = 'Archville' # Owner nick.
CHAN = '#archlinux' # 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 receiver if exists.
receiver = ""
if(len(msg) >= 5): receiver = msg[4]
# Get channel where the command was called.
channel = msg[2]
# Commands.
if cmd ==':.meop': irc.send('MODE ' + channel +' +o '+ sender + '\r\n')
else if cmd ==':.medeop': irc.send('MODE ' + channel +' -o '+ sender + '\r\n')
else if cmd ==':.mevoice': irc.send('MODE ' + channel +' +v '+ sender + '\r\n')
else if cmd ==':.medevoice': irc.send('MODE ' + channel +' -v '+ sender + '\r\n')
else if cmd ==':.op': irc.send('MODE ' + channel +' +o '+ receiver + '\r\n')
else if cmd ==':.deop': irc.send('MODE ' + channel +' -o '+ receiver + '\r\n')
else if cmd ==':.voice': irc.send('MODE ' + channel +' +v '+ receiver + '\r\n')
else if cmd ==':.devoice': irc.send('MODE ' + channel +' -v '+ receiver + '\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"