[multiplex] Fix sous-titres par défaut + argparse
This commit is contained in:
@ -2,6 +2,7 @@ import os
|
||||
import sys
|
||||
import glob
|
||||
import re
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
from pymkv import MKVFile, MKVTrack
|
||||
|
||||
@ -145,7 +146,7 @@ def process_episode(episode, source_dir_1, source_dir_2, saison, serie_name, des
|
||||
subtitle_tracks_other = [t for t in source_2_mkv.tracks if t.track_type == 'subtitles' and t.language != 'fre']
|
||||
|
||||
for idx, track in enumerate(subtitle_tracks_fr):
|
||||
track.default_track = (idx == 0)
|
||||
track.default_track = (idx == 0) and track.default_track
|
||||
if not track.track_name:
|
||||
codec = track._track_codec
|
||||
if track.forced_track:
|
||||
@ -201,21 +202,46 @@ def process_episode(episode, source_dir_1, source_dir_2, saison, serie_name, des
|
||||
|
||||
def main():
|
||||
"""
|
||||
Point d'entrée principal du script.
|
||||
|
||||
Lit les arguments de ligne de commande, prépare les répertoires,
|
||||
et lance le traitement de chaque épisode (de 01 à 30).
|
||||
@brief Point d'entrée du script.
|
||||
@details Parse les arguments en ligne de commande et lance le traitement
|
||||
des épisodes de la série.
|
||||
@arg -v, --video Répertoire source vidéo
|
||||
@arg -a, --audio Répertoire source audio/sous-titres
|
||||
@arg -va Répertoire source commun pour vidéo et audio
|
||||
@arg -n, --nom Nom de la série
|
||||
@arg -s, --saison Numéro de la saison
|
||||
@arg -d, --dest Répertoire de sortie
|
||||
@return None
|
||||
"""
|
||||
if len(sys.argv) != 5:
|
||||
print(f'Usage: {sys.argv[0]} <SOURCE_DIR_1> <SOURCE_DIR_2> <SERIE_NAME> <SAISON>')
|
||||
sys.exit(1)
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Combine des épisodes MKV depuis deux sources (vidéo + audio/sous-titres)."
|
||||
)
|
||||
|
||||
source_dir_1 = sys.argv[1]
|
||||
source_dir_2 = sys.argv[2]
|
||||
serie_name = sys.argv[3]
|
||||
saison = sys.argv[4]
|
||||
dest_dir = f"/media/data/reencoded/{serie_name}/Saison {saison}"
|
||||
parser.add_argument("-v", "--video", help="Répertoire source vidéo" )
|
||||
parser.add_argument("-a", "--audio", help="Répertoire source audio/sous-titres" )
|
||||
parser.add_argument("-va", help="Répertoire source commun pour vidéo et audio" )
|
||||
parser.add_argument("-n", "--nom", required=True, help="Nom de la série")
|
||||
parser.add_argument("-s", "--saison", required=True, help="Numéro de la saison")
|
||||
parser.add_argument("-d", "--dest", required=True, help="Répertoire de sortie")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# Gestion de l'option commune -va
|
||||
if args.va:
|
||||
source_dir_1 = source_dir_2 = args.va
|
||||
else:
|
||||
source_dir_1 = args.video
|
||||
source_dir_2 = args.audio
|
||||
|
||||
# Vérification que les deux dossiers sont renseignés
|
||||
if not source_dir_1 or not source_dir_2:
|
||||
parser.error("Vous devez fournir soit -va, soit à la fois -v et -a.")
|
||||
|
||||
serie_name = args.nom
|
||||
saison = args.saison
|
||||
|
||||
# Chemin de sortie
|
||||
dest_dir = f"{args.dest}/{serie_name}/Saison {saison}"
|
||||
Path(dest_dir).mkdir(parents=True, exist_ok=True)
|
||||
|
||||
for i in range(1, 31):
|
||||
|
Reference in New Issue
Block a user