diff --git a/backend/events.py b/backend/events.py index bb899e7..49ac8fb 100644 --- a/backend/events.py +++ b/backend/events.py @@ -30,6 +30,7 @@ class PlanDownload(Event): date: datetime.date last_modified: datetime.datetime file_length: int + proxies_used: int | None = None @dataclasses.dataclass @@ -103,10 +104,8 @@ def _submit_event(event: Event): event_base_dict = event.get_base_dict() out = {} + # noinspection PyDataclass for key, value in dataclasses.asdict(event).items(): - if key in event_base_dict: - continue - if isinstance(value, (datetime.datetime, datetime.date)): out[key] = value.isoformat() else: @@ -144,17 +143,13 @@ def iterate_events(type_: typing.Type[_T2], school_number: str | None = None) -> for event in cursor: obj = type_.__new__(type_) - for field in dataclasses.fields(obj): - if field.name in event: - continue + obj.__dict__ = event["data"] + for field in dataclasses.fields(obj): if field.type is datetime.datetime: - obj.__dict__[field.name] = datetime.datetime.fromisoformat(event["data"][field.name]) - else: - try: - obj.__dict__[field.name] = event["data"][field.name] - except KeyError: - pass + obj.__dict__[field.name] = datetime.datetime.fromisoformat(obj.__dict__[field.name]) + elif field.type is datetime.date: + obj.__dict__[field.name] = datetime.date.fromisoformat(obj.__dict__[field.name]) obj.__dict__["school_number"] = event["school_number"] obj.__dict__["start_time"] = datetime.datetime.fromisoformat(event["start_time"]) diff --git a/backend/plan_downloader.py b/backend/plan_downloader.py index 7dfd47a..2b59c7c 100644 --- a/backend/plan_downloader.py +++ b/backend/plan_downloader.py @@ -144,8 +144,10 @@ async def download_indiware_mobil( etag=plan_response.etag, ) + # noinspection PyUnresolvedReferences timer.submit(plan_type=plan_filename, last_modified=plan_response.last_modified, - file_length=len(plan_response.content), date=date) + file_length=len(plan_response.content), date=date, + proxies_used=plan_response.response._num_proxy_tries) self.cache.store_plan_file(date, revision, plan_response.content, plan_filename) self.cache.store_plan_file(date, revision, json.dumps(downloaded_file.serialize()), diff --git a/requirements.txt b/requirements.txt index e4f55e6..519ebc3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ Flask-WTF~=1.1.1 Flask-Compress~=1.13 pymongo~=4.3.3 python-dotenv~=1.0.0 -bumstundenplan24-wrapper@ git+https://github.com/Belissimo-T/stundenplan24-wrapper@2ea93550 +bumstundenplan24-wrapper@ git+https://github.com/Belissimo-T/stundenplan24-wrapper@da592cb4 Werkzeug~=2.3.6 discord-webhook~=1.3.0 brotlicffi~=1.1.0.0