Use slice to shorten name

This commit is contained in:
Serene-Arc 2021-03-30 18:22:11 +10:00 committed by Ali Parlakci
parent f06e8f3ac4
commit a170356738
2 changed files with 5 additions and 3 deletions

View File

@ -65,9 +65,10 @@ class FileNameFormatter:
@staticmethod
def _limit_file_name_length(filename: str, ending: str) -> str:
possible_id = re.search(r'((?:_\w{6})?$)', filename).group(1)
ending = possible_id + ending
filename = re.sub(rf"^{possible_id}|{possible_id}$", "", filename)
possible_id = re.search(r'((?:_\w{6})?$)', filename)
if possible_id:
ending = possible_id.group(1) + ending
filename = filename[:possible_id.start()]
max_length_chars = 255 - len(ending)
max_length_bytes = 255 - len(ending.encode('utf-8'))
while len(filename) > max_length_chars or len(filename.encode('utf-8')) > max_length_bytes:

View File

@ -160,6 +160,7 @@ def test_limit_filename_length(test_filename: str, test_ending: str):
@pytest.mark.parametrize(('test_filename', 'test_ending', 'expected_end'), (
('test_aaaaaa', '_1.png', 'test_aaaaaa_1.png'),
('test_aataaa', '_1.png', 'test_aataaa_1.png'),
('test_abcdef', '_1.png', 'test_abcdef_1.png'),
('test_aaaaaa', '.png', 'test_aaaaaa.png'),
('test', '_1.png', 'test_1.png'),
('test_m1hqw6', '_1.png', 'test_m1hqw6_1.png'),