feat(ffmpeg handling): add return value for cmd_ function if files need to be moved
This commit is contained in:
1 parent
6d229c59f7
commit
d43fcd530c
1 file changed
+34
-30
@@ -470,7 +470,7 @@ def cmd_convert_av(args):
|
||||
# Prevents FFmpeg from trying to guess/add extra default streams
|
||||
map_metadata=0,
|
||||
)
|
||||
return out
|
||||
return True, out
|
||||
|
||||
|
||||
def cmd_convert_audio(args):
|
||||
@@ -493,7 +493,7 @@ def cmd_convert_audio(args):
|
||||
map="0",
|
||||
map_metadata=0,
|
||||
)
|
||||
return out
|
||||
return True, out
|
||||
|
||||
|
||||
def cmd_convert_video(args):
|
||||
@@ -513,7 +513,7 @@ def cmd_convert_video(args):
|
||||
map="0",
|
||||
map_metadata=0,
|
||||
)
|
||||
return out
|
||||
return True, out
|
||||
|
||||
|
||||
def cmd_remove_subs(args):
|
||||
@@ -561,7 +561,7 @@ def cmd_remove_subs(args):
|
||||
logger.debug("%s", " ".join(cmd))
|
||||
if args.dry_run:
|
||||
logger.debug(f"Dry run: {' '.join(cmd)}")
|
||||
return "nooutputneeded"
|
||||
return True, "nooutputneeded"
|
||||
try:
|
||||
subprocess.run(
|
||||
cmd,
|
||||
@@ -575,7 +575,7 @@ def cmd_remove_subs(args):
|
||||
logger.error("STDOUT:\n%s", e.stdout)
|
||||
logger.error("STDERR:\n%s", e.stderr)
|
||||
raise
|
||||
return "nooutputneeded"
|
||||
return True, "nooutputneeded"
|
||||
|
||||
|
||||
def cmd_remove_audio_track(args):
|
||||
@@ -594,7 +594,7 @@ def cmd_remove_audio_track(args):
|
||||
]
|
||||
if not remaining_audio:
|
||||
logger.error("No audiotracks remaining")
|
||||
return False
|
||||
return False, "nooutputneeded"
|
||||
remaining_audio = translate_audio_tracks(remaining_audio)
|
||||
|
||||
removed_was_default = any(
|
||||
@@ -639,7 +639,7 @@ def cmd_remove_audio_track(args):
|
||||
logger.trace(" ".join(cmd))
|
||||
if args.dry_run:
|
||||
logger.debug(f"Dry run: {' '.join(cmd)}")
|
||||
return "nooutputneeded"
|
||||
return True, "nooutputneeded"
|
||||
try:
|
||||
result = subprocess.run(
|
||||
cmd,
|
||||
@@ -649,7 +649,7 @@ def cmd_remove_audio_track(args):
|
||||
)
|
||||
logger.debug("FFmpeg subprocess successful")
|
||||
logger.trace(result.stdout)
|
||||
return "nooutputneeded"
|
||||
return True, "nooutputneeded"
|
||||
|
||||
except subprocess.CalledProcessError as e:
|
||||
logger.error(
|
||||
@@ -683,7 +683,7 @@ def cmd_extract_audio_track(args):
|
||||
out = ffmpeg.output(
|
||||
extracted_audio, output_audio, acodec="libmp3lame", audio_bitrate="192k"
|
||||
)
|
||||
return out
|
||||
return True, out
|
||||
|
||||
|
||||
def cmd_downsize(args):
|
||||
@@ -717,7 +717,7 @@ def cmd_downsize(args):
|
||||
acodec="copy",
|
||||
scodec=get_scodec(args.output),
|
||||
)
|
||||
return out
|
||||
return True, out
|
||||
|
||||
|
||||
def cmd_filter_audio(args):
|
||||
@@ -834,7 +834,7 @@ def cmd_filter_audio(args):
|
||||
scodec=get_scodec(args.output),
|
||||
).global_args(*metadata_args)
|
||||
|
||||
return out
|
||||
return True, out
|
||||
|
||||
|
||||
def cmd_cut_segment(args):
|
||||
@@ -866,7 +866,7 @@ def cmd_cut_segment(args):
|
||||
scodec=get_scodec(args.output),
|
||||
)
|
||||
logger.trace(f"Command: {out}")
|
||||
return out
|
||||
return True, out
|
||||
|
||||
|
||||
def cmd_set_primary_audio(args):
|
||||
@@ -925,7 +925,7 @@ def cmd_set_primary_audio(args):
|
||||
**out_kwargs,
|
||||
)
|
||||
|
||||
return out
|
||||
return True, out
|
||||
|
||||
|
||||
def cmd_show_metadata(args, show_metadata=False):
|
||||
@@ -951,7 +951,7 @@ def cmd_show_metadata(args, show_metadata=False):
|
||||
# else:
|
||||
# for k, v in tags.items():
|
||||
# logger.info(f"{k}: {v}")
|
||||
return format_tags
|
||||
return False, format_tags
|
||||
|
||||
|
||||
def cmd_set_metadata(args):
|
||||
@@ -971,7 +971,7 @@ def cmd_set_metadata(args):
|
||||
cmd = ["kid3-cli", "-c", f"set {args.key} '{args.value}'", args.input]
|
||||
if args.dry_run:
|
||||
logger.debug(f"Dry run: {' '.join(cmd)}")
|
||||
return "nooutputneeded"
|
||||
return True, "nooutputneeded"
|
||||
result = subprocess.run(
|
||||
cmd,
|
||||
capture_output=True,
|
||||
@@ -979,7 +979,7 @@ def cmd_set_metadata(args):
|
||||
check=True,
|
||||
)
|
||||
logger.trace(result.stdout)
|
||||
return None # Kid3 writes in-place
|
||||
return False, "nooutputneeded" # Kid3 writes in-place
|
||||
|
||||
# ─────────────────────────────────────────────
|
||||
# Default → ffmpeg (copy stream)
|
||||
@@ -989,7 +989,7 @@ def cmd_set_metadata(args):
|
||||
out = ffmpeg.output(
|
||||
inp, str(args.output), c="copy", metadata=f"{args.key}={args.value}"
|
||||
)
|
||||
return out
|
||||
return True, out
|
||||
|
||||
|
||||
def cmd_apply_chapters(args):
|
||||
@@ -1067,7 +1067,7 @@ def cmd_apply_chapters(args):
|
||||
]
|
||||
if args.dry_run:
|
||||
logger.debug(f"Dry run: {' '.join(cmd)}")
|
||||
return "nooutputneeded"
|
||||
return True, "nooutputneeded"
|
||||
result = subprocess.run(
|
||||
cmd,
|
||||
capture_output=True,
|
||||
@@ -1091,11 +1091,11 @@ def cmd_apply_chapters(args):
|
||||
audio["tracknumber"] = str(args.file_counter + 1)
|
||||
if args.dry_run:
|
||||
logger.debug("Dry run")
|
||||
return "nooutputneeded"
|
||||
return True, "nooutputneeded"
|
||||
audio.save()
|
||||
safe_rename(filename, new_path)
|
||||
|
||||
return "nooutputneeded"
|
||||
return True, "nooutputneeded"
|
||||
|
||||
|
||||
def cmd_remove_russian_from_db(args_in):
|
||||
@@ -1109,7 +1109,7 @@ def cmd_remove_russian_from_db(args_in):
|
||||
audio_tracks = translate_audio_tracks(get_audio_tracks(file))
|
||||
except ValueError as e:
|
||||
logger.warning("%s", e)
|
||||
return "nooutputneeded"
|
||||
return False, "nooutputneeded"
|
||||
|
||||
logger.trace(f"File: {file.name}: Audio tracks: {audio_tracks}")
|
||||
remove_tracks = []
|
||||
@@ -1121,7 +1121,10 @@ def cmd_remove_russian_from_db(args_in):
|
||||
args = args_in
|
||||
args.audio_index = number
|
||||
cmd_remove_audio_track(args)
|
||||
return "nooutputneeded"
|
||||
if remove_tracks:
|
||||
return True, "nooutputneeded"
|
||||
else:
|
||||
return False, "nooutputneeded"
|
||||
|
||||
|
||||
def cmd_test(args):
|
||||
@@ -2211,23 +2214,24 @@ def main():
|
||||
args.input = Path(file)
|
||||
if args.override:
|
||||
out_path = file.with_name(f"{file.stem}_override{file.suffix}")
|
||||
files_move_from.append(out_path)
|
||||
files_move_to.append(file)
|
||||
else:
|
||||
out_path = file.with_name(
|
||||
f"{file.stem}_{args.command}{file.suffix}"
|
||||
)
|
||||
args.output = out_path
|
||||
args.file_counter = counter
|
||||
out = args.func(args)
|
||||
if out != "nooutputneeded":
|
||||
outputs.append(out)
|
||||
return_value, output_str = args.func(args)
|
||||
if output_str != "nooutputneeded":
|
||||
outputs.append(output_str)
|
||||
if args.override and return_value:
|
||||
files_move_from.append(out_path)
|
||||
files_move_to.append(file)
|
||||
counter += 1
|
||||
# ---- SINGLE FILE ----
|
||||
elif input_path.is_file():
|
||||
out = args.func(args)
|
||||
if out != "nooutputneeded":
|
||||
outputs.append(out)
|
||||
return_value,output_str = args.func(args)
|
||||
if output_str != "nooutputneeded":
|
||||
outputs.append(output_str)
|
||||
else:
|
||||
raise ValueError(f"Invalid input path: {args.input}")
|
||||
|
||||
|
||||
Reference in new issue
Block a user