Custom Calendar

This commit is contained in:
2024-09-29 19:21:20 +02:00
parent b0bda20baa
commit 85c129b602
14 changed files with 159 additions and 34 deletions

View File

@ -11,8 +11,8 @@ from dateutil.relativedelta import relativedelta
from icalendar import Calendar, Event
import json
from init import scheduler, flaskApp, Rapla, db
from init import scheduler, flaskApp, Rapla, db, HiddenVL, User
from calendar_generation import createCustomCalendar
async def fetchPlan(session, url):
"""
@ -121,12 +121,18 @@ async def getNewRapla(url: str, testing=False):
return url
def getIcal(kurs: str):
def getIcal(uid: int | None = None, kurs: str | None = None):
"""
Liefert den Namen der Datei des mitgegebenen Kurses.
Liefert den Namen der Datei des mitgegebenen Users.
:param uid:
:param kurs:
:return str:
"""
if uid:
if HiddenVL.query.filter_by(uid=uid).first():
return f"{uid}.ical"
else:
kurs = User.query.filter_by(id=uid).first().kurs
rapla = Rapla.query.filter(Rapla.name == kurs).first()
try:
return rapla.file
@ -164,6 +170,11 @@ async def refreshRapla():
for calendar in range(len(calendarList)):
if calendarList[calendar] != 200:
writeToFile(f"calendars/{fileList[calendar]}", calendarList[calendar])
hiddenEvents = HiddenVL.query.all()
hiddenUsers = {event.uid for event in hiddenEvents}
for user in hiddenUsers:
uid = await createCustomCalendar(user)
print (f"Update custom calendar: {uid}")
@scheduler.task('cron', id="raplaSchedule", hour='*', day_of_week='*', minute='*/3', week='*', second='40')