"""HTML page routes served via Jinja2 templates.""" from __future__ import annotations from fastapi import APIRouter, Request from fastapi.templating import Jinja2Templates router = APIRouter() templates = Jinja2Templates(directory="backend/templates") def _ctx(request: Request, page: str, **extra) -> dict: return {"request": request, "active_page": page, **extra} @router.get("/") async def overview(request: Request): return templates.TemplateResponse("overview.html", _ctx(request, "overview")) @router.get("/detections") async def detections(request: Request): return templates.TemplateResponse("detections.html", _ctx(request, "detections")) @router.get("/scores") async def scores(request: Request): return templates.TemplateResponse("scores.html", _ctx(request, "scores")) @router.get("/traffic") async def traffic(request: Request): return templates.TemplateResponse("traffic.html", _ctx(request, "traffic")) @router.get("/ip/{ip}") async def ip_detail(request: Request, ip: str): return templates.TemplateResponse("ip_detail.html", _ctx(request, "ip_detail", ip=ip)) @router.get("/classify") async def classify(request: Request): return templates.TemplateResponse("classify.html", _ctx(request, "classify")) @router.get("/features") async def features(request: Request): return templates.TemplateResponse("features.html", _ctx(request, "features")) @router.get("/models") async def models(request: Request): return templates.TemplateResponse("models.html", _ctx(request, "models"))