All pastes #953349 Raw Edit

Untitled

public text v1 · immutable
#953349 ·published 2008-03-23 00:30 UTC
rendered paste body
import sys
import socket
import string
import os
#import irclib
from constants import *

# twisted imports
#from twisted.protocols import irc
#from twisted.internet import reactor, protocol
#from twisted.python import log


# Generic echo handler ( space added )
# This is used to output some initial information from the server
#def handleEcho ( connection, event ):
#		print
#		print ' '.join ( event.arguments() )

#irc = irclib.IRC()
#irc.add_global_handler ( 'welcome', handleEcho ) 

def send(self, to, msg):
	"""Sends a message "msg" to "to" """
        s.send('PRIVMSG %s :%s\r\n' % (to, msg))

    
def sendresponse(self, to, msg, nick):
        """Personalized version of send."""
    	msg = msg.replace('[nick]', nick)
    	s.send('PRIVMSG %s :%s\r\n' % (to, msg))

def parsemsg(msg):
    complete=msg[1:].split(':',1)
    info=complete[0].split(' ')
    msgpart=complete[1]
    sender=info[0].split('!')
    ask=msgpart.split(' ')
    if msgpart[0]=='`' and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2):
        cmd=msgpart[1:].split(' ')
        if cmd[0]=='op':
            s.send('MODE %s +o %s \n' % (info[2], cmd[1]))
	    s.send('PRIVMSG %s : %s, I hope you know what you are doing.\n' % (info[2], sender[0]))
        if cmd[0]=='deop':
            s.send('MODE %s -o %s \n' % (info[2], cmd[1]))
	    reply = 'muhahahaha'
        if cmd[0]=='voice':
            s.send('MODE %s +v %s \n' % (info[2], cmd[1]))
	    reply = 'But %s is so much better quiet' % (receiver)
        if cmd[0]=='devoice':
            s.send('MODE %s -o %s \n' % (info[2], cmd[1]))
	    reply = 'Much better'
	if cmd[0]=='invite':
	#    target = cmd.split(' ')
	    s.send('invite %s %s\n' % (cmd[1], info[2]))
        if cmd[0]=='sys':
            syscmd(msgpart[1:],info[2])

    if msgpart[0]=='-' and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2):
        cmd=msgpart[1:]
        s.send('%s \n' % (cmd)) 
        print 'cmd= %s' % (cmd)

    if msgpart[0]=='@':
        cmd=msgpart[1:].strip()
	receiver = None
   	if ask[0]=='%s' % (NICK) or ask[0] == '%s,' % (NICK):
		cmd=msgpart[4:].strip()
		receiver = None
   	if cmd.find('|')!=-1:
        	cmd = cmd.split('|')
		receiver = cmd[1].strip()
		cmd = cmd[0].strip()
	cmd = cmd.lower()

    if (msgpart.find('fuck')!=-1 or msgpart.find('fucking')!=-1): #and fuck == 0:
	s.send('PRIVMSG %s : %s, Please do not swear in here. This is a family friendly channel.\n' % (info[2], sender[0]))
    	channel=info[2]
    	factoids(cmd,channel,sender,receiver)

def factoids(cmd,channel,sender,receiver):
    print cmd
    reply = "%s I have no idea what you're talking about" % (sender[0])
    
    if cmd == 'ping':
       reply = 'pong'
    if cmd == 'info':
       reply = "I am ajmorris' python bot"
    if cmd == 'cbf':
       reply = 'TOO BAD! DO IT!!'
    if cmd == 'bhb':
       reply = "I am ajmorris' bot. Beware me for i am god in this channel"
    if cmd == 'pacman':
       reply = 'OM NOM NOM NOM! I EAT YOU!'
    if cmd == 'help':
       reply = 'ajmorris, Joeb454, bodhi_zazen, attention please!'
    if cmd == 'help!':
       reply = 'ajmorris, Joeb454, bodhi_zazen, attention please!'
    if cmd == 'run':
       reply = '%s, im coming to eat you!' % (sender[0])
    if cmd == 'you suck':
       reply = 'no you do %s\r\n' % (sender[0])
    if cmd == 'ohmy':
       reply = 'Please watch your language and topic to help keep this channel family friendly.'
    if cmd == 'microsoft':
       reply = 'Microsoft is bad, VERY BAD. END OF DISCUSSION!'
    if cmd == 'pastebin':
       reply = 'pastebin is a service to post multiple-lined texts so you do not flood the channel. One of the many is located at http://www.pastebin.ca' 
    if cmd == 'insult':
       reply = 'You are nothing but a weedy ooze of penguin-molesting bladders.'
    if cmd == 'bodhi_zazen':
       reply = 'bodhi is an op in this channel, do what he says or incur his wrath ;)'
    if cmd == 'ajmorris':
       reply = 'ajmorris is an op in this channel, and my creator, do what he says or incur his wrath ;)'
    if cmd == 'joeb454':
       reply = 'Joe is an op in this channel, do what he says or incur his wrath ;)'

    if cmd.find('join')!=-1 and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2):
       chan = cmd.split(' ')
       print cmd
       s.send('JOIN %s\r\n' % (chan[1]))
       reply = 'done'

    if cmd.find('kick')!=-1 and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2):
       target = cmd.split(' ')
       print cmd
       s.send('KICK %s %s\r\n' % (CHAN, target[1]))
       reply = 'with pleasure'

    if cmd.find('cs')!=-1 and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2):
       #chan = cmd.split(' ')
       print cmd
       s.send('PRIVMSG ChanServ :OP %s\r\n' % (channel))
       reply = 'I feel the power!'

    #if cmd.find('op')!=-1 and cmd.find('op')!=2 and (sender[0] == OWNER or sender[0] == ADMIN):
     #  target = cmd.split(' ')
      # s.send('ChanServ :OP %s %s\r\n' % (channel, target[1]))
       #reply = 'with pleasure'

    #if cmd.find('deop')!=-1 and (sender[0] == OWNER or sender[0] == ADMIN):
     #  target = cmd.split(' ')
      # s.send('deop %s\r\n' % (target[1]))

    if cmd == 'leave' and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2): 
       reply = 'some cock head made me leave'
       s.send('QUIT \r\n')
	
    if cmd == 'part' and (sender[0] == OWNER):
       reply = 'bye'
       s.send('PART %s\r\n' % (channel))

    if cmd.find('identify')!=-1 and (sender [0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2):
	#cmd = cmd.split(' ')
	s.send('PRIVMSG NickServ: IDENTIFY %s\r\n' % (PASS))

    #if cmd.find('invite')!=-1 and (sender [0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2):
#	target = cmd.split(' ')
#	print cmd
#	s.send('invite %s %s\r\n' % (target[0], channel))

    if receiver != None:
	s.send('PRIVMSG %s :%s, %s\n' % (channel, receiver, reply))
    elif receiver == None:
	s.send('PRIVMSG %s :%s\n' % (channel, reply))

def syscmd(commandline,channel):
	cmd=commandline.replace('sys ',' ')
	cmd=cmd.rstrip()
	os.system(cmd+' >temp.txt')
	a=open('temp.txt')
	ot=a.read()
	ot.replace('n','|')
	a.close()
	s.send('PRIVMSG %s :%s\n' % (channel, ot))
	return 0

#Connection
s=socket.socket( )
s.connect((HOST, PORT)) 
s.send('NICK %s \n' % (NICK)) #Tells nick server nickname
s.send('USER %s %s bla : %s \n' % (IDENT, HOST, REALNAME)) #Tells user Identity, current host, and actual name
s.send('PRIVMSG NickServ :IDENTIFY %s\r\n' % (PASS))
s.send('PRIVMSG ChanServ :OP %s\r\n' % (CHAN))


while 1:  #While True
    line=s.recv(500)
    print line # I believe this is for the bot owners information. It doesn't send anything to chatroom
    log = file('log.txt', 'a')
    log.write(line)
    log.close()
    if line.find('Welcome to the freenode IRC Network')!=-1: #If any line says this it will join the channel(s) put in CHAN
        s.send('JOIN %s %s %s %s\n' % (CHAN, CHAN2, CHAN3, CHAN4))
    if line.find('PRIVMSG')!=-1: # For private messaging, I do not know how this works
        parsemsg(line)