forked from kenzuya/unshackle
fix(core): correct filename sanitization regex and cleanup
- Adjust regex to replace semicolon only with spacer - Remove colon from characters replaced by spacer, handle as removal instead - Comment out removal of extra neighbouring spacers to prevent unintended collapses - Refine unsafe characters removal pattern to avoid filename issues
This commit is contained in:
@@ -99,9 +99,9 @@ def sanitize_filename(filename: str, spacer: str = ".") -> str:
|
|||||||
# remove or replace further characters as needed
|
# remove or replace further characters as needed
|
||||||
filename = "".join(c for c in filename if unicodedata.category(c) != "Mn") # hidden characters
|
filename = "".join(c for c in filename if unicodedata.category(c) != "Mn") # hidden characters
|
||||||
filename = filename.replace("/", " & ").replace(";", " & ") # e.g. multi-episode filenames
|
filename = filename.replace("/", " & ").replace(";", " & ") # e.g. multi-episode filenames
|
||||||
filename = re.sub(r"[:; ]", spacer, filename) # structural chars to (spacer)
|
filename = re.sub(r"[;]", spacer, filename) # structural chars to (spacer)
|
||||||
filename = re.sub(r"[\\*!?¿,'\"" "()<>|$#~]", "", filename) # not filename safe chars
|
filename = re.sub(r"[\\:*!?¿,'\"""<>|$#~]", "", filename) # not filename safe chars
|
||||||
filename = re.sub(rf"[{spacer}]{{2,}}", spacer, filename) # remove extra neighbouring (spacer)s
|
# filename = re.sub(rf"[{spacer}]{{2,}}", spacer, filename) # remove extra neighbouring (spacer)s
|
||||||
|
|
||||||
return filename
|
return filename
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user