38 lines
975 B
Python
38 lines
975 B
Python
from pathlib import Path
|
|
from typing import NamedTuple
|
|
|
|
from fastapi import FastAPI, Request
|
|
from fastapi.responses import HTMLResponse
|
|
from fastapi.staticfiles import StaticFiles
|
|
from fastapi.templating import Jinja2Templates
|
|
|
|
from gallery.version import __version__
|
|
|
|
|
|
class Section(NamedTuple):
|
|
link: str
|
|
title: str
|
|
|
|
|
|
SECTIONS = [
|
|
Section("weather", "Погода"),
|
|
Section("schedule", "Телепрограмма"),
|
|
]
|
|
|
|
|
|
def mount(app: FastAPI):
|
|
base_dir = Path(__file__).parent
|
|
app.mount("/static/common", StaticFiles(directory=base_dir / "static"))
|
|
templates = Jinja2Templates(directory=base_dir / "templates")
|
|
|
|
@app.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,
|
|
},
|
|
)
|