import requests import time class Kurjerzy: def __init__(self, app): self.base_url = 'https://www.kurjerzy.pl/graphql' self.session = requests.Session() self.app = app self.email = None def __repr__(self): return '' % (self.email,) def send_query(self, query, variables={}): resp = self.session.post(self.base_url, json={ 'query': query, 'variables': variables, }) resp.raise_for_status() return resp.json() def set_token(self, token): self.session.headers.update({"Authorization": "Bearer %s" % (token['token'],)}) def login(self, email, password): resp = self.send_query(r''' mutation ($email: String, $password: String) { createToken( email: $email, password: $password ) { token, expire, expireHuman } } ''', {'email': email, 'password': password}) if resp['data']['createToken']: return resp['data']['createToken'] def shipment_info(self, id): result = self.send_query(r'query($id: Int) { shipments(ids:[$id]) { labelSource, numberParcel, status, tracking { booked, collected, inDelivery, delivered, returned, statuses } } }', { 'id': id, }) try: return result['data']['shipments'][0] except IndexError: return None if __name__ == '__main__': k = Kurjerzy({}) print(k.login('...', '...')) print(k.send_query(r'query {shipments{id,status,number,labelRef,labelSource,params{content}}}'))