From 49ef5ea605853273232b97877e113e1a6052cf49 Mon Sep 17 00:00:00 2001 From: Belissimo_T Date: Tue, 28 Nov 2023 21:20:29 +0100 Subject: [PATCH 1/4] bump stundenplan24-wrapper version --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a8904d9..d49990e 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 -stundenplan24-wrapper@ git+https://github.com/Belissimo-T/stundenplan24-wrapper@44af95c2 +bumstundenplan24-wrapper@ git+https://github.com/Belissimo-T/stundenplan24-wrapper@d79ee8a9 Werkzeug~=2.3.6 discord-webhook~=1.3.0 brotlicffi~=1.1.0.0 From 6f24c361a2c0748d1e57d0ace100332c985d5555 Mon Sep 17 00:00:00 2001 From: Belissimo_T Date: Tue, 28 Nov 2023 22:22:35 +0100 Subject: [PATCH 2/4] refactor Event parsing --- backend/events.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) 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"]) From 063c173ba131a27684e371839827c4aa7154f0bf Mon Sep 17 00:00:00 2001 From: Belissimo_T Date: Tue, 28 Nov 2023 22:23:48 +0100 Subject: [PATCH 3/4] add proxies_used attribute to PlanDownload event --- backend/plan_downloader.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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()), From 479ddb6f52143d0772fea6880fa923a73f4c3ae1 Mon Sep 17 00:00:00 2001 From: Belissimo_T Date: Tue, 28 Nov 2023 22:27:28 +0100 Subject: [PATCH 4/4] bump stundenplan24-wrapper version --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d49990e..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@d79ee8a9 +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