"""
Page controller for serving HTML templates.
This module provides endpoints for serving HTML pages using Jinja2 templates.
"""
from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse
from src.server.utils.template_helpers import render_template
router = APIRouter(tags=["pages"])
@router.get("/", response_class=HTMLResponse)
async def root(request: Request):
"""Serve the main application page."""
return render_template(
"index.html",
request,
title="Aniworld Download Manager"
)
@router.get("/setup", response_class=HTMLResponse)
async def setup_page(request: Request):
"""Serve the setup page."""
return render_template(
"setup.html",
request,
title="Setup - Aniworld"
)
@router.get("/login", response_class=HTMLResponse)
async def login_page(request: Request):
"""Serve the login page."""
return render_template(
"login.html",
request,
title="Login - Aniworld"
)
@router.get("/queue", response_class=HTMLResponse)
async def queue_page(request: Request):
"""Serve the download queue page."""
return render_template(
"queue.html",
request,
title="Download Queue - Aniworld"
)
@router.get("/loading", response_class=HTMLResponse)
async def loading_page(request: Request):
"""Serve the initialization loading page."""
return render_template(
"loading.html",
request,
title="Initializing - Aniworld"
)
@router.get("/setup/unresolved", response_class=HTMLResponse)
async def unresolved_page(request: Request):
"""Serve the unresolved folders resolution page."""
return render_template(
"unresolved.html",
request,
title="Resolve Series - Aniworld"
)