diff --git a/elicznik.py b/elicznik.py index 02df06c..0a3865e 100755 --- a/elicznik.py +++ b/elicznik.py @@ -8,15 +8,6 @@ import ssl import requests -parser = argparse.ArgumentParser() -parser.add_argument("username") -parser.add_argument("password") -parser.add_argument("meter_id") - -args = parser.parse_args() - -payload = {"username": args.username, "password": args.password, "service": "https://elicznik.tauron-dystrybucja.pl"} - LOGIN_URL = "https://logowanie.tauron-dystrybucja.pl/login" CHART_URL = "https://elicznik.tauron-dystrybucja.pl/index/charts" @@ -32,25 +23,45 @@ class TLSAdapter(requests.adapters.HTTPAdapter): ) -session = requests.session() -session.mount("https://", TLSAdapter()) - -p = session.get(LOGIN_URL) -p = session.post(LOGIN_URL, data=payload) +class Session(requests.Session): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.mount("https://", TLSAdapter()) -chart = { - # change timedelta to get data from another days (1 for yesterday) - "dane[chartDay]": (datetime.datetime.now() - datetime.timedelta(1)).strftime("%d.%m.%Y"), - "dane[paramType]": "day", - "dane[smartNr]": args.meter_id, - # comment if don't want generated energy data in JSON output: - "dane[checkOZE]": "on", -} +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("username") + parser.add_argument("password") + parser.add_argument("meter_id") -r = session.post(CHART_URL, data=chart) -print(r.text) + args = parser.parse_args() -# Optionally write JSON to file -# with open('file.json', 'wb') as f: -# f.write(r.content) + session = Session() + + resp = session.get(LOGIN_URL) + resp = session.post( + LOGIN_URL, + data={ + "username": args.username, + "password": args.password, + "service": "https://elicznik.tauron-dystrybucja.pl", + }, + ) + + resp = session.post( + CHART_URL, + data={ + # change timedelta to get data from another days (1 for yesterday) + "dane[chartDay]": (datetime.datetime.now() - datetime.timedelta(1)).strftime("%d.%m.%Y"), + "dane[paramType]": "day", + "dane[smartNr]": args.meter_id, + # comment if don't want generated energy data in JSON output: + "dane[checkOZE]": "on", + }, + ) + print(resp.text) + + +if __name__ == "__main__": + main()