- 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
72 lines
3.2 KiB
Python
72 lines
3.2 KiB
Python
"""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)
|