From e0718d2781713704b723026f4a1402e8d4366b4b Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Fri, 16 Jun 2023 19:26:57 +0200 Subject: [PATCH] Fix --- src/services/filename_getter.rs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/services/filename_getter.rs b/src/services/filename_getter.rs index ed6e74b..00d87a5 100644 --- a/src/services/filename_getter.rs +++ b/src/services/filename_getter.rs @@ -77,8 +77,24 @@ pub fn get_filename_by_book(book: &BookWithRemote, file_type: &str, force_zip: b } let right_part = format!(".{book_id}.{file_type_}"); - let normal_filename_slice = std::cmp::min(64 - right_part.len() - 1, normal_filename.len() -1); - let left_part = normal_filename.get(..normal_filename_slice).unwrap_or_else(|| panic!("Can't slice left part: {:?} {:?}", normal_filename, normal_filename_slice)); + let normal_filename_slice = std::cmp::min(64 - right_part.len() - 1, normal_filename.len() - 1); + + let left_part = if normal_filename_slice == normal_filename.len() - 1 { + &normal_filename + } else { + normal_filename.get(..normal_filename_slice).unwrap_or_else(|| panic!("Can't slice left part: {:?} {:?}", normal_filename, normal_filename_slice)) + }; format!("{left_part}{right_part}") } + +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + let t = "Usachev_A_A_Priklyucheniya_«Kotoboya»"; + let r = t.get(..t.len() - 2); + + println!("{:?}", r); + } +}