Update library to match API changes

This commit is contained in:
Michał Leśniewski
2023-04-07 19:54:27 +02:00
parent 8dc700fd7f
commit 53b5b63df2
2 changed files with 12 additions and 16 deletions

View File

@@ -7,7 +7,7 @@ long_description = (here / 'README.md').read_text(encoding='utf-8')
setup(
name='elicznik',
version='1.3.1',
version='1.4.0',
description='Tauron eLicznik scrapper',
long_description=long_description,
long_description_content_type='text/markdown',

View File

@@ -32,28 +32,24 @@ class ELicznik:
def __exit__(self, exc_type, exc_val, exc_tb):
pass
def _get_raw_readings(self, type_, start_date, end_date=None):
end_date = end_date or start_date
def _get_raw_daily_readings(self, type_, date):
data = self.session.post(
self.CHART_URL,
data={
"type": type_,
"from": start_date.strftime("%d.%m.%Y"),
"to": end_date.strftime("%d.%m.%Y"),
"from": date.strftime("%d.%m.%Y"),
"to": date.strftime("%d.%m.%Y"),
"profile": "full time",
},
).json()
).json().get("data", {}).get("values", [])
data = data.get("data", {}).get("allData", {})
for element in data:
date = element.get("Date")
hour = int(element.get("Hour"))
# TODO: There's also an "Extra" field, which seems to be set to be set to "T" only for the one extra hour
# when switching from CEST to CET (e.g. 3 AM on 2021-10-31)
timestamp = datetime.datetime.strptime(date, "%Y-%m-%d")
timestamp += datetime.timedelta(hours=hour)
value = element.get("EC")
yield timestamp, value
return ((datetime.datetime.combine(date, datetime.time(h)), value) for h, value in enumerate(data))
def _get_raw_readings(self, type_, start_date, end_date=None):
end_date = end_date or start_date
while start_date <= end_date:
yield from self._get_raw_daily_readings(type_, start_date)
start_date += datetime.timedelta(days=1)
def get_readings_production(self, start_date, end_date=None):
return dict(self._get_raw_readings("oze", start_date, end_date))