[multiplex] Fix sous-titres par défaut + argparse
This commit is contained in:
@ -2,6 +2,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import glob
|
import glob
|
||||||
import re
|
import re
|
||||||
|
import argparse
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from pymkv import MKVFile, MKVTrack
|
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']
|
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):
|
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:
|
if not track.track_name:
|
||||||
codec = track._track_codec
|
codec = track._track_codec
|
||||||
if track.forced_track:
|
if track.forced_track:
|
||||||
@ -201,21 +202,46 @@ def process_episode(episode, source_dir_1, source_dir_2, saison, serie_name, des
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""
|
"""
|
||||||
Point d'entrée principal du script.
|
@brief Point d'entrée du script.
|
||||||
|
@details Parse les arguments en ligne de commande et lance le traitement
|
||||||
Lit les arguments de ligne de commande, prépare les répertoires,
|
des épisodes de la série.
|
||||||
et lance le traitement de chaque épisode (de 01 à 30).
|
@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:
|
parser = argparse.ArgumentParser(
|
||||||
print(f'Usage: {sys.argv[0]} <SOURCE_DIR_1> <SOURCE_DIR_2> <SERIE_NAME> <SAISON>')
|
description="Combine des épisodes MKV depuis deux sources (vidéo + audio/sous-titres)."
|
||||||
sys.exit(1)
|
)
|
||||||
|
|
||||||
source_dir_1 = sys.argv[1]
|
parser.add_argument("-v", "--video", help="Répertoire source vidéo" )
|
||||||
source_dir_2 = sys.argv[2]
|
parser.add_argument("-a", "--audio", help="Répertoire source audio/sous-titres" )
|
||||||
serie_name = sys.argv[3]
|
parser.add_argument("-va", help="Répertoire source commun pour vidéo et audio" )
|
||||||
saison = sys.argv[4]
|
parser.add_argument("-n", "--nom", required=True, help="Nom de la série")
|
||||||
dest_dir = f"/media/data/reencoded/{serie_name}/Saison {saison}"
|
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)
|
Path(dest_dir).mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
for i in range(1, 31):
|
for i in range(1, 31):
|
||||||
|
Reference in New Issue
Block a user