Refactor code structure

This commit is contained in:
Michał Leśniewski
2021-07-11 19:06:00 +02:00
parent 4ada955b39
commit 6c2af74ba9

View File

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