42 lines
896 B
Python
42 lines
896 B
Python
from pathlib import Path
|
|
from typing import NamedTuple
|
|
|
|
from fastapi import APIRouter, Request
|
|
from fastapi.responses import HTMLResponse
|
|
from fastapi.templating import Jinja2Templates
|
|
|
|
from gallery.version import __version__
|
|
|
|
from ..translation import _
|
|
|
|
|
|
class Section(NamedTuple):
|
|
link: str
|
|
title: str
|
|
icon: str
|
|
|
|
|
|
SECTIONS = [
|
|
Section("weather", "Weather", "brightness-high"),
|
|
Section("schedule", "TV program", "tv"),
|
|
]
|
|
|
|
base_dir = Path(__file__).parent
|
|
|
|
router = APIRouter()
|
|
|
|
templates = Jinja2Templates(directory=base_dir / "templates")
|
|
templates.env.globals.update({"_": _})
|
|
|
|
|
|
@router.get("/", response_class=HTMLResponse)
|
|
async def get_section_list(request: Request):
|
|
return templates.TemplateResponse(
|
|
request=request,
|
|
name="root_index.html",
|
|
context={
|
|
"version": __version__,
|
|
"sections": SECTIONS,
|
|
},
|
|
)
|