Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- import sys
- import xml.etree.ElementTree as ET
- import requests
- from pathlib import Path
- def login(username, password, force=False):
- p = Path(f'.data/')
- p.mkdir(parents=True, exist_ok=True)
- p = Path(f'.data/{username.lower()}.json')
- p.touch()
- with p.open() as f:
- data = f.read()
- if not data:
- data = '{}'
- data = json.loads(data)
- if not isinstance(data, dict):
- if not force:
- return data[1]
- device_id = data[0]
- else:
- device_id = data.get('d', '')
- headers = {
- 'Pragma': 'no-cache',
- 'Origin': 'https://xat.com',
- 'Accept-Encoding': 'gzip, deflate, br',
- 'Accept-Language': 'en-US,en;q=0.8',
- 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
- 'Content-type': 'application/x-www-form-urlencoded',
- 'Accept': '*/*',
- 'Cache-Control': 'no-cache',
- 'Referer': 'https://xat.com/login',
- 'Connection': 'keep-alive',
- }
- params = {
- 'v': '1.12.0',
- 'm': '7',
- 'sb': '1',
- '': ''
- }
- payload = {
- 'json': json.dumps({
- 'M': '0',
- 'P': '',
- 'd': device_id,
- 'n': username,
- 'nfy': '',
- 'oi': '0',
- 'p': password,
- 'pt': '3',
- 't': ''
- })
- }
- response = requests.post('https://mt.xat.com/web_gear/chat/mlogin2.php?',
- params=params, headers=headers, data=payload)
- data = response.json()
- if isinstance(data, int):
- print(f'Error #{data}')
- if data == 1:
- print('Login blocked. Wait a while before trying again.')
- print('I actually have no clue what any of the rest mean, good luck.')
- sys.exit()
- if 'd' in data:
- print(data['s'])
- with p.open('w') as f:
- json.dump(data, f)
- sys.exit()
- elif 'v' in data:
- data = ET.XML(data['v'])
- if 'e' in data.attrib:
- print('Incorrect password.')
- sys.exit()
- with p.open('w') as f:
- json.dump([device_id, data.attrib], f)
- data = data.attrib
- return data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement