This repository has been archived on 2025-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
2023-06-15 19:54:14 -04:00

59 lines
1.6 KiB
Python

import requests
import json
from datetime import datetime
import sys
def get_id():
with open("id.txt", "r") as file:
return file.read()
def cleanse_hour(hour):
split_hour = hour.split(":", 1)
return (split_hour[0] if (len(split_hour[0]) == 2) else "0" + split_hour[0]) + split_hour[1]
def get_shift(schedule_day):
shift = schedule_day["DailyShift"][0]
if (shift == "-"):
return
datestr = schedule_day["StartDate"]
date = datestr[0:4] + datestr[5:7] + datestr[8:10] + "T"
split_shift = shift.split("-", 1)
startdate = date + cleanse_hour(split_shift[0]) + "00"
split_shift = split_shift[1].split(" ", 1)
enddate = date + cleanse_hour(split_shift[0]) + "00"
dept = split_shift[1]
return (startdate, enddate, dept)
sess = requests.Session()
employee_id = get_id()
sess.get("https://myschedule.metro.ca/api/Login/" + employee_id)
total_schedule = sess.get("https://myschedule.metro.ca/api/Employee/" + employee_id).json()
with open("calendar.ics", "w") as file:
file.write("BEGIN:VCALENDAR\n")
file.write("VERSION:2.0\n")
file.write("PRODID:SuperNovaa41\n")
for i in range(-1, -8, -1):
res = get_shift(total_schedule["WorkTime"][i])
if (res is None):
continue
with open("calendar.ics", "a") as file:
file.write("BEGIN:VEVENT\n")
file.write("DTSTART:" + res[0] + "\n")
file.write("DTEND:" + res[1] + "\n")
file.write("SUMMARY: Work (" + res[2] + ")\n")
file.write("END:VEVENT\n")
with open("calendar.ics", "a") as file:
file.write("END:VCALENDAR\n")