Le serveur se présente, et range son jeton (2.3.0)
L'interface du serveur affichait un champ de jeton dans son en-tête, visible en permanence alors qu'il ne sert qu'une fois : il descend dans l'onglet Réglages, avec le nom du serveur, sa version et le nombre d'appareils appairés. Elle gagne surtout une page À propos sur le modèle des autres projets : cinq sections, contenu séparé du rendu, version lue de /api/health et journal servi depuis le CHANGELOG du dépôt — rien de recopié, donc rien qui puisse diverger. Au passage, le serveur annonçait 1.0.0 depuis six publications ; il lit maintenant le fichier VERSION comme le client.
This commit is contained in:
1 parent
28cb545685
commit
53f5fc1148
5 files changed
+261
-15
No files matched your search
@@ -24,14 +24,17 @@ from contextlib import asynccontextmanager
|
||||
from pathlib import Path
|
||||
|
||||
from fastapi import Body, Depends, FastAPI, Header, HTTPException, Query, Request
|
||||
from fastapi.responses import FileResponse, HTMLResponse
|
||||
from fastapi.responses import FileResponse, HTMLResponse, PlainTextResponse, Response
|
||||
|
||||
from . import config as config_module
|
||||
from .sources import catalogs, radio
|
||||
from .storage import Storage
|
||||
from .workers import Downloader, Watcher, safe_name
|
||||
|
||||
VERSION = "1.0.0"
|
||||
# Client et serveur sortent du même dépôt, à la même version : on lit le fichier
|
||||
# que la chaîne de publication incrémente, plutôt qu'un numéro à tenir à jour ici.
|
||||
REPO_ROOT = Path(__file__).resolve().parents[2]
|
||||
VERSION = (REPO_ROOT / "VERSION").read_text().strip() if (REPO_ROOT / "VERSION").exists() else "0.0.0"
|
||||
PAIRING_WINDOW_SECONDS = 120
|
||||
WEB_DIR = Path(__file__).parent / "web"
|
||||
|
||||
@@ -278,6 +281,21 @@ def bootstrap(request: Request) -> dict:
|
||||
return {"token": config.token}
|
||||
|
||||
|
||||
@app.get("/api/changelog", response_class=PlainTextResponse)
|
||||
def changelog() -> str:
|
||||
"""Le journal du dépôt, lu à la demande plutôt que recopié dans la page."""
|
||||
path = REPO_ROOT / "CHANGELOG.md"
|
||||
return path.read_text(encoding="utf-8") if path.exists() else ""
|
||||
|
||||
|
||||
@app.get("/about.js", response_class=PlainTextResponse)
|
||||
def about_script() -> Response:
|
||||
return Response(
|
||||
(WEB_DIR / "about.js").read_text(encoding="utf-8"),
|
||||
media_type="application/javascript; charset=utf-8",
|
||||
)
|
||||
|
||||
|
||||
@app.get("/", response_class=HTMLResponse)
|
||||
def index() -> str:
|
||||
return (WEB_DIR / "index.html").read_text(encoding="utf-8")
|
||||
Reference in new issue
Block a user