From 7190eca364664dc6b2560bd8d5ed36b72fc3fe23 Mon Sep 17 00:00:00 2001 From: Willem Haffmans Date: Fri, 4 Apr 2025 09:01:53 +0000 Subject: [PATCH] commit --- __pycache__/intra.cpython-313.pyc | Bin 0 -> 12335 bytes main.py | 14 ++++++------ poetry.lock | 34 ++++++++++++++++++++++++++---- pyproject.toml | 1 + 4 files changed, 39 insertions(+), 10 deletions(-) create mode 100644 __pycache__/intra.cpython-313.pyc diff --git a/__pycache__/intra.cpython-313.pyc b/__pycache__/intra.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e2cc38b3820b364243d62c8e005dd3d317db752 GIT binary patch literal 12335 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 literal 0 HcmV?d00001 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]