Skip to content
Snippets Groups Projects
Commit e76817e7 authored by jimpp's avatar jimpp
Browse files

If an avatar or vcard filename is > 48, use its hash for filename instead. I used the md5

method already in the same file. Fixes #4273.
parent 8b945f69
No related branches found
No related tags found
No related merge requests found
......@@ -841,18 +841,19 @@ def get_os_info():
return 'N/A'
def sanitize_filename(filename):
'''makes sure the filename we will write does contain only
acceptable and latin characters'''
'''makes sure the filename we will write does contain only acceptable and
latin characters, and is not too long (in that case hash it)'''
# 48 is the limit
if len(filename) > 48:
hash = hash_md5(filename)
filename = base64.b64encode(hash.digest())
filename = punycode_encode(filename) # make it latin chars only
filename = filename.replace('/', '_')
if os.name == 'nt':
filename = filename.replace('?', '_').replace(':', '_')\
.replace('\\', '_').replace('"', "'").replace('|', '_')\
.replace('*', '_').replace('<', '_').replace('>', '_')
# 48 is the limit
if len(filename) > 48:
extension = filename.split('.')[-1]
filename = filename[0:48]
return filename
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment