Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cloudscraper
- import json
- def serializedTransaction(f):
- my_file = open("serializedTransaction.txt", "r")
- d = my_file.readline().replace('[', '').replace(']', '')
- for x in d.split(' '):
- f.append(int(x))
- return f
- def change_file(f, d):
- with open(str(f), 'w') as file:
- json.dump(d, file, indent=4)
- file.close()
- def sessionExecutor():
- data = json.load(open('users.json'))['accounts'][0]
- return {"token_id": data['token_id'],
- "session_token": data['x-access-token']}, [data['username'], data['password']]
- def sessionDump(token, token_id):
- data = json.load(open('users.json'))
- data['accounts'][0].update({"x-access-token": token, "token_id": token_id})
- print(f'New x-access-token: {token}\n'
- f'New token_id: {token_id}')
- change_file('users.json', data)
- def createScrapper():
- scraper = cloudscraper.create_scraper(
- browser={
- 'browser': 'firefox',
- 'platform': 'windows',
- 'mobile': False
- }
- )
- session = sessionExecutor()
- scraper.cookies.update(session[0])
- return waxSessionChecker(scraper, session[1])
- def approvingTrans(scraper):
- data = {
- "serializedTransaction": serializedTransaction([]), "website": "unknown-url.wax.io",
- "description": "jwt is insecure",
- "freeBandwidth": False}
- e = scraper.post('https://public-wax-on.wax.io/wam/sign', json=data,
- headers={'x-access-token': scraper.cookies._find("session_token")}).json()
- change_file('pyanswer.json', e)
- def wax_mail_confirming(scraper, token):
- while True:
- data = {"code": input('Введите код с почты: '), "challenge": token}
- r = scraper.post('https://all-access.wax.io/api/session/challenge', data=data).json()
- if 'errors' in r:
- print(f'Ошибка при попытке авторизации: {r["errors"][0]["message"]}')
- else:
- scraper.get('https://all-access.wax.io/api/session')
- sessionDump(scraper.cookies._find("session_token"), scraper.cookies._find("token_id"))
- break
- def wax_login(scraper, data):
- data = {"password": data[1], "username": data[0], "redirectTo": ""}
- resp = scraper.post('https://all-access.wax.io/api/session', data=data).json()
- if 'challengeToken' in resp:
- wax_mail_confirming(scraper, resp['challengeToken'])
- def waxSessionChecker(scraper, data):
- if 'errors' in scraper.get('https://all-access.wax.io/api/session').json():
- print('Сессия слетела')
- scraper.cookies.clear()
- wax_login(scraper, data)
- else:
- approvingTrans(scraper)
- createScrapper()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement