Administration native sur le Mac, réencodage sélectif et aide intégrée

- admin.sh : RTG lancé directement sur le Mac (plus de conteneur), nginx
  joint l'interface par host.docker.internal:8765 ; variante conteneur
  conservée (admin-docker.sh, docker-compose-conteneur.yml)
- Compression : réglages lus dans les fichiers (CRF, codec), refaire
  seulement le 1080p ou le 720p, seulement si les réglages ont changé ;
  réglages vidéo propres à chaque voyage ; « Compression actuelle » affichée
- Plus d'arrêt automatique après 2 h d'inactivité (--arret-inactif, 0 par défaut) ;
  arrêt propre qui attend la fin des encodages en cours
- Aide contextuelle dans l'interface (rtg/interface/aide) ; README centré
  sur l'installation et la mise en place
- Cœurs attribués au conteneur détectés (cgroup) et signalés

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mf2kATMtqVABHSYdxJMnim
This commit is contained in:
FabriceandClaude Opus 5.5 committed 2026-10-19 05:32:05 +00:00
1 parent b54ae69b19
commit ada3d76f50
38 files changed
+1067 -264

No files matched your search

+19
View File
@@ -219,3 +219,22 @@ def test_derriere_le_serveur_web(voyage_sans_heures, tmp_path, monkeypatch):
finally:
srv.shutdown()
serveur.ENV.globals["base"] = ""
def test_aide(client):
appel, racine, voyage = client
code, html = appel("/aide")
assert code == 200 and "Prise en main" in html and 'href="/aide/generer"' in html
code, html = appel("/aide/generer?panneau=1")
assert "<h1>Générer</h1>" in html and "CRF" in html
code, html = appel("/aide/index?panneau=1")
assert 'hx-get="/aide/sources?panneau=1"' in html # liens internes au panneau
code, html = appel("/aide/nexistepas")
assert "introuvable" in html
# Chaque lien entre pages d'aide mène à une page qui existe
import glob, re as _re
dossier = os.path.join(os.path.dirname(serveur.__file__), "aide")
sujets = {os.path.basename(f)[:-3] for f in glob.glob(os.path.join(dossier, "*.md"))}
for f in glob.glob(os.path.join(dossier, "*.md")):
for cible in _re.findall(r"\]\(([a-z]+)\.md\)", open(f, encoding="utf-8").read()):
assert cible in sujets, (f, cible)