diff --git a/hosts/www/caldav-export.py b/hosts/www/caldav-export.py index 4ab0eaa..bb8f445 100644 --- a/hosts/www/caldav-export.py +++ b/hosts/www/caldav-export.py @@ -8,11 +8,11 @@ from caldav import DAVClient from icalendar import Calendar -def safe_filename(name): +def safe_filename(name: str) -> str: return re.sub(r"[^a-zA-Z0-9._-]+", "_", name) -def export_calendar(url, username, password, output): +def export_calendar(url: str, username: str, password: str, calendar: str) -> Calendar: client = DAVClient( url=url, username=username, @@ -25,19 +25,19 @@ def export_calendar(url, username, password, output): target = None for cal in calendars: - if cal.name == output["calendar"]: + if cal.name == calendar: target = cal break if target is None: raise RuntimeError( - f"Calendar '{output['calendar']}' not found for {username}" + f"Calendar '{calendar}' not found for {username}" ) print(f"Exporting {username}/{target.name}") result = Calendar() - result.add("prodid", "-//CalDAV Export//") + result.add("prodid", f"-//{calendar} calendar export//") result.add("version", "2.0") objects = target.objects() @@ -71,7 +71,7 @@ def main(): output_dir.mkdir(parents=True, exist_ok=True) combined = Calendar() - combined.add("prodid", "-//CalDAV Export Combined//") + combined.add("prodid", "-//Combined calendar//") combined.add("version", "2.0") for entry in config["calendars"]: @@ -82,7 +82,7 @@ def main(): entry["url"], username, password, - entry, + entry["calendar"], ) filename = output_dir / f"{safe_filename(entry['calendar'])}.ics" diff --git a/secrets/caldav-export-config.age b/secrets/caldav-export-config.age index d3442aa..110a967 100644 Binary files a/secrets/caldav-export-config.age and b/secrets/caldav-export-config.age differ