From 6354d2ec9c527d8ee88d6ce10929449bdaad9848 Mon Sep 17 00:00:00 2001 From: Myp3a Date: Thu, 12 Sep 2024 21:58:08 +0500 Subject: [PATCH 1/3] generate event uid based on event data --- src/lessons_to_events.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/lessons_to_events.py b/src/lessons_to_events.py index 0ceb6f6..4399184 100644 --- a/src/lessons_to_events.py +++ b/src/lessons_to_events.py @@ -1,4 +1,6 @@ from datetime import datetime, timedelta +from hashlib import md5 +from uuid import UUID from dateutil.parser import isoparse from ics import Event @@ -50,6 +52,18 @@ def _raw_lesson_to_location(raw_lesson: dict): return result if result else None +def _raw_lesson_to_uuid(raw_lesson: dict): + elements = [ + raw_lesson['date'], + raw_lesson['time_start'], + raw_lesson['subject'] + ] + result = ", ".join(elements) + md5_of_lesson = md5(result.encode("utf-8")).hexdigest() + result_uuid = str(UUID(hex=md5_of_lesson)) + return result_uuid + + def raw_lesson_to_event(raw_lesson: dict) -> Event: begin = isoparse(f"{raw_lesson['date']}T{raw_lesson['time_start']}:00+03:00") end = isoparse(f"{raw_lesson['date']}T{raw_lesson['time_end']}:00+03:00") @@ -62,6 +76,7 @@ def raw_lesson_to_event(raw_lesson: dict) -> Event: end=end, description=_raw_lesson_to_description(raw_lesson), location=_raw_lesson_to_location(raw_lesson), + uid=_raw_lesson_to_uuid(raw_lesson), ) if raw_lesson["zoom_url"]: event.url = raw_lesson["zoom_url"] From 995e99a6057156242e01d91192d08f996e4e12f7 Mon Sep 17 00:00:00 2001 From: iburakov Date: Sun, 15 Sep 2024 20:17:00 +0300 Subject: [PATCH 2/3] Fix ruff errors --- src/lessons_to_events.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lessons_to_events.py b/src/lessons_to_events.py index 4399184..29c5ec9 100644 --- a/src/lessons_to_events.py +++ b/src/lessons_to_events.py @@ -54,9 +54,9 @@ def _raw_lesson_to_location(raw_lesson: dict): def _raw_lesson_to_uuid(raw_lesson: dict): elements = [ - raw_lesson['date'], - raw_lesson['time_start'], - raw_lesson['subject'] + raw_lesson["date"], + raw_lesson["time_start"], + raw_lesson["subject"], ] result = ", ".join(elements) md5_of_lesson = md5(result.encode("utf-8")).hexdigest() From 730d6a5a169f54708cfc09ad6a220213af788931 Mon Sep 17 00:00:00 2001 From: iburakov Date: Sun, 15 Sep 2024 20:18:55 +0300 Subject: [PATCH 3/3] Bump the version We don't version this project properly at the moment, but something is better than nothing. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c51b823..ff2dea2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "my-itmo-ru-to-ical" -version = "1.0.0" +version = "1.1.0" description = "A simple app exporting the scheudle from my.itmo.ru in iCalendar format." authors = ["iburakov "] license = "MIT"