48 lines
1.9 KiB
Python
Executable File
48 lines
1.9 KiB
Python
Executable File
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))
|
|
|
|
cal = Calendar()
|
|
cal.add('prodid', '-//Codam Events//Duinvoetje.nl//')
|
|
cal.add('version', '2.0')
|
|
|
|
|
|
ic = IntraAPIClient()
|
|
response = ic.get("users/187348/events_users")
|
|
for entry in response.json():
|
|
ical_event = Event()
|
|
event = entry['event']
|
|
ical_event.add('uid', event['id'])
|
|
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('location', event['location'])
|
|
cal.add_component(ical_event)
|
|
|
|
response2 = ic.get("users/187348/scale_teams")
|
|
for entry in response2.json():
|
|
ical_event = Event()
|
|
event = entry
|
|
ical_event.add('uid', event['id'])
|
|
ical_event.add('dtstamp', datetime.now())
|
|
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('location', "Codam Campus")
|
|
cal.add_component(ical_event)
|
|
|
|
print(cal.to_ical().decode('UTF-8'))
|
|
# print("="*20)
|
|
# print(json.dumps(response2.json(), indent=2))
|
|
# print("="*20)
|