All pastes #970427 Raw Edit

BHB's Code

public python v1 · immutable
·published 2008-04-04 01:13 UTC
rendered paste body
import sysimport stringimport socketimport osimport time#import irclibfrom 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 me(s): return ctcp('ACTION %s' % s)def rightnow():    "Return a string representing the current time and date."    return time.strftime('%X on %x',time.localtime(time.time()))def factoidsdict():    f = open('factoids.txt', 'r')    toggle = True    for line in factoids.txt:	if toggle:		key = line.rstrip()    		toggle = False    	else:		value = line.rstrip()			toggle = True		table[key] = value		    f.close()    def parsemsg(msg):    complete=msg[1:].split(':',1)   #complete=msg[1:].split(' ',1)    info=complete[0].split(' ')    msgpart=complete[1]    sender=info[0].split('!')    #line=line.rstrip()    #line=line.split()    ask=msgpart.split(' ')   #if sender[0].find('bot')==-1:    if msgpart[0]=='`' and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2 and MODE[0] == '+e'):    #else s.send('PRIVMSG %s :%s, I can not op you, this is most likely because you suck' % (info[2], sender[0]))        cmd=msgpart[1:].split(' ')#	cmd=msgpart[2:].split(' ')        if cmd[0]=='say':	    response = cmd[2].split(' ', 2)	    s.send('PRIVMSG %s :%s\n' % (cmd[1], response[0]))        if cmd[0]=='notify':	    s.send('notify %s %s\n' % (cmd[1], cmd[2]))        if cmd[0]=='op':            s.send('MODE %s +o %s \n' % (info[2], cmd[1]))	if cmd[0]=='kill':	    s.send('kick %s %s %s\r\n' % (cmd[1], cmd[2], cmd[3]))	    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 = 'Oh, but it was so quiet'        if cmd[0]=='devoice':            s.send('MODE %s -v %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]=='kick':	    #cmd[0] = cmd[2].split(' ', 2)	    s.send('kick %s %s\r\n' % (info[2], cmd[1]))	if cmd[0]=='quit':	    s.send('quit %s %s\r\n' % (info[2], cmd[1]))	if cmd[0]=='part':	    s.send('part %s %s\r\n' % (info[2], cmd[1]))#	if cmd[0]=='time':#	    s.send('ctcp %s %s\r\n' % (sender[0], info[4]))	#if cmd[0]=='ignore':        if cmd[0]=='sys':            syscmd(msgpart[1:],info[2])    if msgpart[0]=='-' and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2 and MODE[0] == '+e'):        cmd=msgpart[1:]        s.send('%s \n' % (cmd))         print 'cmd= %s' % (cmd)   #    if msgpart[0]==(NICK):#	cmd=msgpart[1:].strip()#	#receiver = None#    if ask[0]=='%s' % (NICK):#	cmd=msgpart[1:].strip()#	receiver = None    if msgpart[0]=='@':        cmd=msgpart[1:].strip()	receiver = None	if cmd.find('|')!=-1:		cmd = cmd.split('|')		receiver = cmd[1].strip()		cmd = cmd[0].strip()      #if ask[0]=='bhb ':#	cmd=msgpart[1:].strip()#	receiver = None#    if (msgpart.find('bhb ')!=-1):#  	cmd=msgpart[1:].strip()#	receiver = None#    if msgpart[0]==(NICK):#	cmd=msgpart[1:].strip()#	receiver = None #  	if cmd.find('|')!=-1:        #	cmd = cmd.split('|')	#	receiver = cmd[1].strip()	#	cmd = cmd[0].strip()	cmd = cmd.lower()	channel=info[2]    #if sender[0].find('bot')==-1:     #   if cmd == 'rtfm on' and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2):     #	        global RTFM      #  	RTFM = 0#        	reply = 'RTFM responses enabled'	factoids(cmd,channel,sender,receiver)	msgpart = msgpart.lower()#    if (msgpart.find('bhb ')!=-1):#        s.send('PRIVMSG %s :%s, I am only a bot.' % (info [2], sender[0]))    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]))    if (msgpart.find('RTFM')!=-1): #and RTFM == 0:	s.send('PRIVMSG %s :%s, We do not tolerate telling people to RTFM in this channel.\n' % (info[2], sender[0]))	s.send('kick %s %s\r\n' % (info[2], sender[0]))    if (msgpart.find('rtfm')!=-1):	s.send('PRIVMSG %s :%s, We do not tolerate telling people to RTFM in this channel.\n' % (info[2], sender[0]))	s.send('kick %s %s\r\n' % (info[2], sender[0]))    if (msgpart.find('slaps')!=-1):	s.send('PRIVMSG %s :%s, This is the Trout Protection Agency. Please put the Trout Down and walk away with your hands in the air.\r\n' % (info[2], sender[0]))    if (msgpart.find('hello bhb')!=-1):	s.send('PRIVMSG %s :Sup %s?\r\n' % (info[2], sender[0]))    if (msgpart.find('hey bhb')!=-1):        s.send('PRIVMSG %s :Sup %s?\r\n' % (info[2], sender[0]))    if (msgpart.find('hi bhb')!=-1):        s.send('PRIVMSG %s :Sup %s?\r\n' % (info[2], sender[0]))    if (msgpart.find('JOIN')!=-1):        s.send('PRIVMSG %s :%s, Welcome to #beginners-help!\r\n' % (info[2], sender[0]))    if (msgpart.find('bhb gtfo')!=-1 and sender[0]==OWNER):	s.send("PRIVMSG %s :That was mean :'(\r\n" % (info[2]))	s.send('quit %s\r\n' % (sender[0]))    #if (msgpart.find('PING')!=-1):#	s.send('PONG')       	#channel=info[2]    	#factoids(cmd,channel,sender,receiver)#    if sline[0] == "PING":#	s.send("PONG %s\r\n" % line[1])#	logging.debug('Pinged.')def factoids(cmd,channel,sender,receiver):    print cmd    reply = "%s I have no idea what you're talking about" % (sender[0])    if table.get(cmd)!= None: reply = table.get(cmd)     #   if cmd == 'ping':  #     reply = 'No pong for you'#    if cmd == 'info':#       reply = "I am ajmorris' python bot"#    if cmd == 'cbf':#       reply = 'TOO BAD! DO IT!!'   # if cmd == 'bhb':    #   reply = "I am ajmorris' python 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 == 'botsnack':     #  reply = 'This is old :/'    #if cmd == 'opera':     #  reply = "Opera is an internet browser. IMHO you're better off with Firefox, it renders faster"#    if cmd == 'joeb454':#       reply = 'Joe is an op in this channel, do what he says or incur his wrath ;)'#    if cmd == 'flood': #      reply = 'If you flood this channel, i will shoot you :) Please have a nice day'   # if cmd == 'firefox':  #     reply = 'an open source browser, used by ~33% of the world, making great strides again IE. It has many plugins. I prefer FF3 over FF2'   # if cmd == 'ubuntu':    #   reply = "Ubuntu is a Linux Distribution...chances are you're using it, given this is the help channel for the UBUNTU forums beginners team ;)"    #if cmd == 'recbot':     #  reply = "recbot, an annoying bot spawned from paultag's computer"   ''' if cmd.find('kill')!=-1 and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2 and MODE[0] == '+e'):       reason = cmd.split(' ')       s.send('kick %s %s %s\r\n' % (channel, receiver, reason))	#    if cmd.find('time')!=-1:#       s.send('return time.strftime('%X on %x',time.localtime(time.time()))    if cmd.find('join')!=-1 and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2 and MODE[0] == '+e'):       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 and MODE[0] == '+e'):     #  target = cmd.split(' ')      # print cmd       #s.send('KICK %s %s\r\n' % (channel, target[1]))      # reply = 'with pleasure'    if cmd.find('cs')!=-1 and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2 and MODE[0] == '+e'):       #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 and MODE[0] == '+e'):     #  target = cmd.split(' ')      # s.send('ChanServ :OP %s %s\r\n' % (channel, target[1]))     #  reply = "I hope you know what you're doing"    #if cmd.find('deop')!=-1 and (sender[0] == OWNER or sender[0] == ADMIN and MODE[0] == '+e'):      # target = cmd.split(' ')     #  s.send('deop %s\r\n' % (target[1]))    if cmd == 'quit' and (sender[0] == OWNER or sender[0] == ADMIN or sender[0] == ADMIN2 and MODE[0] == '+e'):        s.send("PRIVMSG %s : Fine, if you don't want me :'(\r\n" % (channel))       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 and MODE[0] == '+e'):       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 and MODE[0] == '+e'):#	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#Connections=socket.socket( )s.connect((HOST, PORT)) s.send('NICK %s \n' % (NICK)) #Tells nick server nicknames.send('USER %s %s bla : %s \n' % (IDENT, HOST, REALNAME)) #Tells user Identity, current host, and actual names.send('PRIVMSG NickServ :IDENTIFY %s\r\n' % (PASS))s.send('PRIVMSG ChanServ :OP %s\r\n' % (CHAN))while 1:  #While True    line=s.recv(4096)    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\n' % (CHAN))	s.send('PRIVMSG %s : Hello World.\r\n' % (CHAN))	s.send('PRIVMSG ChanServ :OP %s\r\n' % (CHAN))    if line.find('PRIVMSG')!=-1: # For private messaging, I do not know how this works        parsemsg(line)    line=line.rstrip()    line=line.split()    if(line[0]=='PING'):    	s.send('PONG %s \n' %line[1])