Phase 1 : moteur Python et commande rtg
- Paquet roadtripsgenerator (pyproject.toml), commande rtg : generer, etat, analyser, compresser, accueil, migrer - Réglages site.toml / voyage.toml (anciens mymaps.txt et moto.txt encore lus) ; qualité vidéo en trois crans - Sources laissées en place : traces découpées par journée d'après leurs horodatages (coupure à 4 h) ou la date du nom de fichier, photos copiées, HEIC converties en JPEG, position déduite de la trace pour les photos sans GPS - extraction_infos.sh et compress.sh portés en Python (plus de bash) ; sorties vidéo écrites sous un nom temporaire ; positions des rushs inchangés reprises du dernier export ; export vidéo conservé quand le disque des rushs est débranché - Pages, accueil et carte globale repris dans le paquet : sortie identique aux scripts (123 fichiers comparés sur 7 voyages) - Tests pytest sur un voyage d'exemple fabriqué à la volée Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mf2kATMtqVABHSYdxJMnim
This commit is contained in:
1 parent
97b936fd3e
commit
f0e1c2dfce
23 files changed
+3083
-1
No files matched your search
+71
@@ -0,0 +1,71 @@
|
||||
"""Commande `rtg`.
|
||||
|
||||
rtg generer [VOYAGE…] tout faire (sources, positions, vidéos, photos, pages, accueil)
|
||||
rtg etat avancement de chaque voyage
|
||||
rtg analyser VOYAGE ce que RTG trouve dans les sources d'un voyage
|
||||
rtg compresser VOYAGE seulement les vidéos
|
||||
rtg accueil seulement la page d'accueil et la carte globale
|
||||
rtg migrer écrire site.toml et les voyage.toml depuis l'existant
|
||||
|
||||
La racine du site est le premier dossier, en remontant depuis le dossier
|
||||
courant, qui contient site.toml (sinon le dossier courant) ; --racine la force.
|
||||
"""
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
|
||||
from rtg import __version__
|
||||
|
||||
|
||||
def main(argv=None):
|
||||
p = argparse.ArgumentParser(prog="rtg", description="RoadTripsGenerator : site web de road-trips.")
|
||||
p.add_argument("--version", action="version", version=f"rtg {__version__}")
|
||||
p.add_argument("--racine", help="racine du site (défaut : recherche de site.toml)")
|
||||
sp = p.add_subparsers(dest="commande", required=True)
|
||||
|
||||
g = sp.add_parser("generer", help="générer un, plusieurs ou tous les voyages, puis l'accueil")
|
||||
g.add_argument("voyages", nargs="*", help="dossiers des voyages (défaut : tous)")
|
||||
g.add_argument("--sans-compression", action="store_true", help="ne pas encoder les vidéos")
|
||||
g.add_argument("--force", action="store_true", help="tout refaire, même ce qui est à jour")
|
||||
g.add_argument("--mymaps-maj", action="store_true", help="récupérer à nouveau les cartes My Maps")
|
||||
|
||||
sp.add_parser("etat", help="avancement de chaque voyage")
|
||||
|
||||
a = sp.add_parser("analyser", help="inventaire des sources d'un voyage")
|
||||
a.add_argument("voyage")
|
||||
|
||||
c = sp.add_parser("compresser", help="encoder les vidéos d'un voyage")
|
||||
c.add_argument("voyage")
|
||||
c.add_argument("--force", action="store_true")
|
||||
|
||||
ac = sp.add_parser("accueil", help="régénérer l'accueil et la carte globale")
|
||||
ac.add_argument("--mymaps-maj", action="store_true")
|
||||
|
||||
sp.add_parser("migrer", help="écrire site.toml et voyage.toml depuis l'organisation actuelle")
|
||||
|
||||
args = p.parse_args(argv)
|
||||
|
||||
from rtg import accueil, site, sources, video
|
||||
from rtg.config import reglages_site, reglages_voyage, trouver_racine
|
||||
racine = os.path.abspath(args.racine) if args.racine else trouver_racine(".")
|
||||
|
||||
try:
|
||||
if args.commande == "generer":
|
||||
ok = site.generer(racine, args.voyages, compression=not args.sans_compression,
|
||||
force=args.force, mymaps_maj=args.mymaps_maj)
|
||||
sys.exit(0 if ok else 1)
|
||||
elif args.commande == "etat":
|
||||
site.etat(racine)
|
||||
elif args.commande == "analyser":
|
||||
site.analyser(args.voyage, racine)
|
||||
elif args.commande == "compresser":
|
||||
v = os.path.abspath(args.voyage)
|
||||
cfg = reglages_voyage(v, reglages_site(racine))
|
||||
sys.exit(0 if video.compresser(v, cfg, sources.analyser(v, cfg), force=args.force) else 1)
|
||||
elif args.commande == "accueil":
|
||||
accueil.generer(racine, reglages_site(racine), args.mymaps_maj)
|
||||
elif args.commande == "migrer":
|
||||
site.migrer(racine)
|
||||
except KeyboardInterrupt:
|
||||
print("\nInterrompu.")
|
||||
sys.exit(130)
|
||||
Reference in new issue
Block a user