Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- import urllib2
- print '[2015 Xat Bot] ~ =Perry' # Don't change this you greedy fuck.
- globals()['Developer'] = '420' # Don't change this you greedy fuck.
- globals()['Owners'] = [] # You can pre-append ids into here for ownering or use the !owner ID command.
- globals()['Verified'] = [] # You can pre-append ids into here for verifying or use the !verify ID command.
- globals()['CommandHandler'] = '!' # This is the handler in which commands will be called from. I recommend "!", but whatever.
- globals()['Commands'] = ['say', 'yell', 'verify', 'owner', 'info'] # DON'T EDIT THESE. You'll fuck up the commands.
- (globals()['Name'], globals()['Avatar'], globals()['Homepage']) = \
- ('pybot', '597', 'http://xat.com/dwbase') # Editable
- (globals()['WelcomeMessage'], globals()['TickleMessage']) = \
- ('Welcome to the chat.', 'Did you click me?') # Editable
- (globals()['VerifiedError'], globals()['OwnerError']) = \
- ('Sorry, you need to be [Verified] to use this command.',
- 'Sorry, you need to be an [Owner] to use this command.') # Editable
- (globals()['VerifiedMessage'], globals()['OwnerMessage']) = \
- ('You have been [Verified].', 'You are now an [Owner]') # Editable
- globals()['NoFollow'] = True # Change to True to Enable or False to disable.
- # Function to get the chat ID (Thanks to Miekl for giving me this url.)
- Chat = raw_input('Chat:')
- Chat = urllib2.urlopen('http://xat.com/web_gear/chat/roomid.php?d='
- + Chat)
- Chat = Chat.read()
- globals()['Chat'] = Chat
- # Function to grab the ID, etc. from Auser3.
- Auser3DotPHP = urllib2.urlopen('http://xat.com/web_gear/chat/auser3.php'
- )
- Auser3DotPHP = Auser3DotPHP.read()
- Auser3DotPHP = Auser3DotPHP.split('&')
- (globals()['ID'], globals()['K1'], globals()['K2']) = \
- (Auser3DotPHP[1].split('=')[1], Auser3DotPHP[2].split('=')[1],
- Auser3DotPHP[3].split('=')[1])
- import socket
- globals()['Sockets'] = []
- (globals()['Xat'], globals()['Bypass'], globals()['Authentication']) = \
- (socket.socket(), socket.socket(), socket.socket())
- (Sockets.append(Xat), Sockets.append(Bypass),
- Sockets.append(Authentication))
- import json
- import random
- import xml.etree.ElementTree as xmlParse
- class Bot:
- def __init__(self):
- Sockets[0].connect(('199.195.198.168', 10032))
- Handshake = "<y r=\"%s\" v=\"0\" m=\"1\" u=\"%s\" />\0" \
- % (Chat, ID)
- Sockets[0].send(Handshake)
- print 'Sent: ' + Handshake
- globals()['Attribs'] = \
- xmlParse.fromstring(Sockets[0].recv(1024).strip(chr(0))).attrib
- print 'Received: ' + str(Attribs)
- if 'i' not in Attribs:
- return False
- elif 'au' in Attribs and 'v' in Attribs:
- # Credit to Astro for the bypass server.
- Sockets[1].connect(('xat.space', 5000))
- BypassValues = {
- 'i': Attribs['i'],
- 'v': Attribs['v'],
- 'au': Attribs['au'],
- 'p': Attribs['p'],
- }
- BypassValues = json.dumps(BypassValues)
- Sockets[1].send(BypassValues)
- BypassValues = Sockets[1].recv(1024)
- BypassValues = json.loads(BypassValues)
- Sockets[1].close()
- (self.l5, self.c) = (BypassValues['l5'], BypassValues['c'])
- Sockets[2].connect(('199.195.198.168', 10032))
- Auth = "<ya u=\"%s\" k=\"%s\" c=\"%s\" r=\"%s\" />\0" \
- % (ID, Attribs['k'], self.c, Chat)
- Sockets[2].send(Auth)
- print 'Sent: ' + Auth
- Received = Sockets[2].recv(1024)
- print 'Received: ' + Received
- Sockets[2].close()
- else:
- Sockets[1].connect(('xat.space', 5000))
- BypassValues = {'i': Attribs['i'], 'p': Attribs['p']}
- BypassValues = json.dumps(BypassValues)
- Sockets[1].send(BypassValues)
- BypassValues = Sockets[1].recv(1024)
- BypassValues = json.loads(BypassValues)
- Sockets[1].close()
- self.l5 = BypassValues['l5']
- (self.l4, self.l3, self.l2) = (str(random.randint(100, 500)),
- str(random.randint(100, 500)), 0)
- j2 = \
- "<j2 cb=\"%s\" Y=\"2\" l5=\"%s\" l4=\"%s\" l3=\"%s\" l2=\"%s\" y=\"%s\" k=\"%s\" k3=\"%s\" p=\"0\" c=\"%s\" f=\"0\" u=\"%s\" d0=\"0\" d2=\"1500007700\" n=\"%s\" a=\"%s\" h=\"%s\" v=\"0\" />\0" \
- % (
- Attribs['c'],
- self.l5,
- self.l4,
- self.l3,
- self.l2,
- Attribs['i'],
- K1,
- K2,
- Chat,
- ID,
- Name,
- Avatar,
- Homepage,
- )
- Sockets[0].send(j2)
- print 'Sent: ' + j2
- while Sockets[0]:
- try:
- Received = Sockets[0].recv(4500)
- if '<m' not in Received:
- print 'Received: ' + Received
- if '<logout' in Received:
- Sockets[0].close()
- Bot()
- else:
- if '<u' in Received:
- xml = xmlParse.fromstring(Received.strip('\0'))
- UserID = xml.attrib['u']
- self.PM(UserID, WelcomeMessage)
- if '<m' in Received:
- xml = xmlParse.fromstring(Received.strip('\0'))
- UserID = xml.attrib['u']
- UserIDNumber = UserID.split('_')
- UserIDNumber = UserIDNumber[0]
- UserMessage = xml.attrib['t']
- Controller = UserMessage.split(' ', 1)
- Handler = Controller[0]
- if 'RTypeOff' in UserMessage:
- pass
- elif 'RTypeOn' in UserMessage:
- pass
- elif '/u' in UserMessage:
- pass
- elif '/m' in UserMessage:
- pass
- elif '/s' in UserMessage:
- pass
- elif '/p' in UserMessage:
- pass
- elif '/d5' in UserMessage:
- pass
- elif '/d10' in UserMessage:
- pass
- elif '/d15' in UserMessage:
- pass
- else:
- print '[' + UserIDNumber + ']: ' \
- + UserMessage
- if Handler.lower() == CommandHandler \
- + Commands[0]:
- if UserIDNumber in Verified or UserIDNumber \
- in Owners or UserIDNumber in Developer:
- Message = Controller[1]
- self.Main(Message)
- else:
- self.PC(UserID, VerifiedError)
- if Handler.lower() == CommandHandler \
- + Commands[1]:
- if UserIDNumber in Verified or UserIDNumber \
- in Owners or UserIDNumber in Developer:
- Message = Controller[1]
- self.Main(Message.upper())
- else:
- self.PC(UserID, VerifiedError)
- if Handler.lower() == CommandHandler \
- + Commands[2]:
- if UserIDNumber in Owners or UserIDNumber \
- in Developer:
- Verified.append(Controller[1])
- self.PC(Controller[1], VerifiedMessage)
- else:
- self.PC(UserIDNumber, OwnerError)
- if Handler.lower() == CommandHandler \
- + Commands[3]:
- if UserIDNumber in Owners or UserIDNumber \
- in Developer:
- Owners.append(Controller[1])
- self.PC(Controller[1], OwnerMessage)
- else:
- self.PC(UserID, OwnerError)
- if Handler.lower() == CommandHandler \
- + Commands[4]:
- self.Main("I'm a xat bot coded in Python by Kondra."
- )
- if '<z' in Received:
- xml = xmlParse.fromstring(Received.strip('\0'))
- UserID = xml.attrib['u']
- if NoFollow:
- self.PM(UserID, '/a_NF')
- self.PM(UserIDNumber, TickleMessage)
- except:
- pass
- def Main(self, Message):
- Sockets[0].send("<m u=\"%s\" t=\"%s\" />\0" % (ID, Message))
- def PM(self, User, Message):
- Sockets[0].send("<z u=\"%s\" d=\"%s\" t=\"%s\" />\0" % (ID,
- User, Message))
- def PC(self, User, Message):
- Sockets[0].send("<z u=\"%s\" d=\"%s\" t=\"%s\" s=\"2\" />\0"
- % (ID, User, Message))
- Bot()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement