from datetime import datetime, timezone from pathlib import Path from fastapi import APIRouter, Depends, Request from fastapi.responses import HTMLResponse from jinja2 import Environment, FileSystemLoader from sqlalchemy.ext.asyncio import AsyncSession from haunt_fm.api.status import status as get_status_data from haunt_fm.db import get_session router = APIRouter() _template_dir = Path(__file__).parent.parent / "templates" _jinja_env = Environment(loader=FileSystemLoader(str(_template_dir)), autoescape=True) @router.get("/", response_class=HTMLResponse) async def status_page(request: Request, session: AsyncSession = Depends(get_session)): data = await get_status_data(session) template = _jinja_env.get_template("status.html") html = template.render(data=data, now=datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M UTC")) return HTMLResponse(html)