from fastapi import APIRouter, Request from fastapi.responses import HTMLResponse, RedirectResponse from fastapi.templating import Jinja2Templates from core.data_processor import get_upcoming_events, get_remarks, invalidate_cache from core.config_loader import config from pathlib import Path router = APIRouter() BASE_DIR = Path(__file__).parent.parent templates = Jinja2Templates(directory=str(BASE_DIR / "templates")) @router.get("/zeiten", response_class=HTMLResponse) async def public_table(request: Request, days: int = None, lines: int = None, test: bool = False): # Wenn nichts angegeben wurde, greift der Standard aus der Config if not days and not lines: days = config['processing']['days_to_show'] events = get_upcoming_events(days_to_show=days, limit=lines) remarks = get_remarks() # Template 'zeiten.html' laden und 'test' Parameter durchreichen return templates.TemplateResponse("zeiten.html", { "request": request, "events": events, "remarks": remarks, "test": test }) @router.get("/", response_class=HTMLResponse) async def admin_page(request: Request): return templates.TemplateResponse("admin.html", { "request": request, "links": config['links'], "config_days": config['processing']['days_to_show'] }) @router.get("/cache-clear") async def clear_cache(): invalidate_cache() return RedirectResponse(url="/")