fix #18 (core): malformed names of output files #33
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user