klank-docs/get_events.py
vitrinekast 2be76fd0c1
All checks were successful
Gitea Actions Demo / compile-html (push) Successful in 57s
remove markdown include
2025-01-07 20:40:12 +01:00

64 lines
1.6 KiB
Python

import os
from pathlib import Path
import requests
import frontmatter
def get_API(URL):
try:
response = requests.get(URL)
response.raise_for_status()
return response.json()
except requests.exceptoins.RequestException as e:
raise Exception(f"Failed getting the API response: {e}")
def create_calendar_item(item, filepath):
print("i will create an item for", item)
try:
details = get_API("https://calendar.klank.school/api/event/detail/" + item['slug'])
print(details)
post = frontmatter.Post(content=details["description"])
for key in details:
post[key] = details[key]
with open(filepath, 'wb') as f:
frontmatter.dump(post, f)
print(f"Created file: {filepath}")
except Exception as e:
print(f"An error occurred while getting the calendar events: {str(e)}")
exit(1)
def get_calendar_events():
Path("src/content/events").mkdir(parents=True, exist_ok=True)
try:
items = get_API("https://calendar.klank.school/api/events?tags=repair&start=-1")
for item in items:
filename = f"{item['slug']}.md"
filepath = os.path.join("src/content/events", filename)
if os.path.isfile(filepath):
print("oh it already exists")
else:
print("did not store this yet")
create_calendar_item(item, filepath)
except Exception as e:
print(f"An error occurred while getting the calendar events: {str(e)}")
exit(1)
def main():
get_calendar_events()
main()