diff --git a/__pycache__/intra.cpython-313.pyc b/__pycache__/intra.cpython-313.pyc new file mode 100644 index 0000000..7e2cc38 Binary files /dev/null and b/__pycache__/intra.cpython-313.pyc differ diff --git a/main.py b/main.py index e8f6a6f..1ce3c89 100755 --- a/main.py +++ b/main.py @@ -2,6 +2,8 @@ from intra import IntraAPIClient import json from icalendar import Calendar, Event, vCalAddress, vText from datetime import datetime, timedelta +from pytz import timezone +import pytz def utc_to_time(naive, timezone="Europe/Istanbul"): return naive.replace(tzinfo=pytz.utc).astimezone(pytz.timezone(timezone)) @@ -20,9 +22,9 @@ for entry in response.json(): ical_event.add('dtstamp', datetime.now()) ical_event.add('summary', event['name']) ical_event.add('description', event['description']) - ical_event.add('dtstart', - utc_to_time(datetime.fromisoformat(event['begin_at'].split('.')[0])), "Europe/Amsterdam") - ical_event.add('dtend', utc_to_time(datetime.fromisoformat(event['end_at'].split('.')[0])), "Europe/Amsterdam") + ical_event.add('dtstart', + utc_to_time(datetime.fromisoformat(event['begin_at'].split('.')[0]), "Europe/Amsterdam")) + ical_event.add('dtend', utc_to_time(datetime.fromisoformat(event['end_at'].split('.')[0]), "Europe/Amsterdam")) ical_event.add('location', event['location']) cal.add_component(ical_event) @@ -32,10 +34,10 @@ for entry in response2.json(): event = entry ical_event.add('uid', event['id']) ical_event.add('dtstamp', datetime.now()) - ical_event.add('summary', "Evaluation:\n" + event['corrector']['login'] + "->" + event['correcteds'][0]['login'] ) + ical_event.add('summary', event['corrector']['login'] + "->" + event['correcteds'][0]['login'] ) ical_event.add('description', event['corrector']['login'] + " will evaluate " + event['correcteds'][0]['login']) - ical_event.add('dtstart', utc_to_time(datetime.fromisoformat(event['begin_at'].split('.')[0])), "Europe/Amsterdam") - ical_event.add('dtend', utc_to_time(datetime.fromisoformat(event['begin_at'].split('.')[0]) + timedelta(minutes=30)), "Europe/Amsterdam") + ical_event.add('dtstart', utc_to_time(datetime.fromisoformat(event['begin_at'].split('.')[0]), "Europe/Amsterdam")) + ical_event.add('dtend', utc_to_time(datetime.fromisoformat(event['begin_at'].split('.')[0]) + timedelta(minutes=30), "Europe/Amsterdam")) ical_event.add('location', "Codam Campus") cal.add_component(ical_event) diff --git a/poetry.lock b/poetry.lock index 1f8994e..80f432a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. [[package]] name = "certifi" @@ -6,6 +6,7 @@ version = "2024.8.30" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, @@ -17,6 +18,7 @@ version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" +groups = ["main"] files = [ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, @@ -116,6 +118,8 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main"] +markers = "platform_system == \"Windows\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -127,6 +131,7 @@ version = "6.0.0" description = "iCalendar parser/generator" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "icalendar-6.0.0-py3-none-any.whl", hash = "sha256:567e718551d800362db04ca09777295336e1803f6fc6bc0a7a5e258917fa8ed0"}, {file = "icalendar-6.0.0.tar.gz", hash = "sha256:7ddf60d343f3c1f716de9b62f6e80ffd95d03cab62464894a0539feab7b5c76e"}, @@ -145,6 +150,7 @@ version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -159,6 +165,7 @@ version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, @@ -173,6 +180,7 @@ version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, @@ -181,12 +189,25 @@ files = [ [package.dependencies] six = ">=1.5" +[[package]] +name = "pytz" +version = "2025.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"}, + {file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}, +] + [[package]] name = "pyyaml" version = "6.0.2" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -249,6 +270,7 @@ version = "2.32.3" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, @@ -270,6 +292,7 @@ version = "1.16.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +groups = ["main"] files = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, @@ -281,6 +304,7 @@ version = "4.66.5" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "tqdm-4.66.5-py3-none-any.whl", hash = "sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd"}, {file = "tqdm-4.66.5.tar.gz", hash = "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad"}, @@ -301,6 +325,7 @@ version = "2024.2" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" +groups = ["main"] files = [ {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, @@ -312,18 +337,19 @@ version = "2.2.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] [metadata] -lock-version = "2.0" +lock-version = "2.1" python-versions = "^3.10" -content-hash = "600356f6916e612a5eaaa0e49e265a84285296812170bae35525008e0b36ecfa" +content-hash = "af3d8a04aa0d4baa1a427093637fd0933586f17b45e5e8b63d985195676dd260" diff --git a/pyproject.toml b/pyproject.toml index f55b476..52b041f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,6 +12,7 @@ pyyaml = "^6.0.2" requests = "^2.32.3" tqdm = "^4.66.5" pygments = "^2.18.0" +pytz = "^2025.2" [build-system]