fix #18 (core): malformed names of output files #33

Merged
max merged 1 commits from fix/malformed-output-names into dev 2026-09-02 17:33:32 +04:00
Showing only changes of commit 3a41bd2920 - Show all commits
+12 -1
View File
@@ -41,7 +41,18 @@ def build_filename(track, idx, extension, args):
clean_filename = apply_replacement(raw_filename,
args.bad_chars,
args.replacement_char)
clean_filename = cleanup_good_chars(clean_filename, args.replacement_char)
# Split off the file extension before cleanup so trailing
# replacement chars don't leak into the name portion.
name_part, _, ext_part = clean_filename.rpartition('.')
clean_filename = cleanup_good_chars(name_part, args.replacement_char)
# Strip leading/trailing separator characters (replacement char,
# hyphen, etc.) that may result from empty fields or bad-char
# sequences adjacent to template separators.
clean_filename = clean_filename.strip(f'{args.replacement_char}-')
# Fallback: if cleanup leaves an empty name, use the track number.
if not clean_filename:
clean_filename = f"{idx:02d}"
clean_filename = f"{clean_filename}.{ext_part}"
else:
clean_filename = raw_filename
# Warn about unsafe characters.