All pastes #946551 Raw Edit

Stuff

public text v1 · immutable
·published 2008-03-17 19:52 UTC
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"