diff --git a/api.py b/api.py new file mode 100644 index 0000000..188bba1 --- /dev/null +++ b/api.py @@ -0,0 +1,28 @@ +import requests +import os, getpass, re, pickle, getpass + +class Session(): + def __init__(self): + self.client = requests.Session() + + def set_csrf(self): + self.client.headers['x-csrftoken'] = re.search('csrf-token\" content=\"(.*)\">', self.client.get('https://warframe.market').text).group(1) + + def api_request(self, url='/', method='get', **kwargs): + return getattr(self.client, method)('https://api.warframe.market/v1' + url, **kwargs) + + def login(self, force = False): + self.set_csrf() + if os.path.exists('JWT.pkl') and not force: + with open('JWT.pkl', 'rb') as f: + self.client.cookies.update(pickle.load(f)) + else: + self.api_request(url='/auth/signin', method='post', json={ + "auth_type": "cookie", + "email": input('Email: '), + "password": getpass.getpass("Password: ") + }) + if self.client.cookies.get('JWT'): + with open('JWT.pkl', 'wb') as f: + pickle.dump(self.client.cookies. f) +