Philipp Hörist pushed to branch master at gajim / gajim
Commits:
f375e063 by Philipp Hörist at 2026-08-11T20:59:03+02:00
new: Make sanitize_filename() take a length argument
- - - - -
1 changed file:
- gajim/common/helpers.py
Changes:
=====================================
gajim/common/helpers.py
=====================================
@@ -78,13 +78,13 @@
KeyType = TypeVar("KeyType")
-def sanitize_filename(filename: str) -> str:
+def sanitize_filename(filename: str, max_length: int = 50) -> str:
"""
Sanitize filename of:
- characters used to obfuscate file names/extensions
- elements not allowed on Windows
https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
- Limit filename length to 50 chars on all systems
+ - shorten to max length
"""
# Remove right-to-left override U+202E (commonly used to spoof extensions)
@@ -133,10 +133,10 @@ def sanitize_filename(filename: str) -> str:
extension = Path(filename).suffix[:10]
filename = Path(filename).stem
- final_length = 50 - len(extension)
- # Many Filesystems have a limit on filename length: keep it short
- filename = filename[:final_length]
+ if max_length > 0:
+ final_length = max_length - len(extension)
+ filename = filename[:final_length]
return f"{filename}{extension}"
@@ -148,9 +148,9 @@ def make_path_from_jid(base_path: Path, jid: JID) -> Path:
if jid.localpart is None:
return base_path / domain
- path = base_path / domain / sanitize_filename(jid.localpart[:50])
+ path = base_path / domain / sanitize_filename(jid.localpart)
if jid.resource is not None:
- return path / sanitize_filename(jid.resource[:30])
+ return path / sanitize_filename(jid.resource, max_length=30)
return path
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/f375e063d3f94873da510a4f07b2bcc2a3e8a1c8
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/f375e063d3f94873da510a4f07b2bcc2a3e8a1c8
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]