From 5e20a2bfbdd046729e857cffc68bb8e22856f096 Mon Sep 17 00:00:00 2001 From: Untone Date: Wed, 23 Oct 2024 14:55:44 +0300 Subject: [PATCH] normalize-ext-case --- src/thumbnail.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/thumbnail.rs b/src/thumbnail.rs index 24c3be2..b3aa337 100644 --- a/src/thumbnail.rs +++ b/src/thumbnail.rs @@ -5,9 +5,9 @@ use std::{cmp::max, collections::HashMap, io::Cursor}; pub const THUMB_WIDTHS: [u32; 7] = [10, 40, 110, 300, 600, 800, 1400]; /// Парсит запрос на миниатюру, извлекая оригинальное имя файла и требуемую ширину. -/// Пример: "filename_150.ext" -> ("filename.ext", 150, "ext") -/// unsafe/1440x/production/image/439efaa0-816f-11ef-b201-439da98539bc.jpg -> ("439efaa0-816f-11ef-b201-439da98539bc.jpg", 1440, "jpg") -/// unsafe/production/image/5627e002-0c53-11ee-9565-0242ac110006.png -> ("5627e002-0c53-11ee-9565-0242ac110006.png", 0, "png") +/// Пример: "filename_150.ext" -> ("filename", 150, "ext") +/// unsafe/1440x/production/image/439efaa0-816f-11ef-b201-439da98539bc.jpg -> ("439efaa0-816f-11ef-b201-439da98539bc", 1440, "jpg") +/// unsafe/production/image/5627e002-0c53-11ee-9565-0242ac110006.png -> ("5627e002-0c53-11ee-9565-0242ac110006", 0, "png") pub fn parse_image_request(path: &str) -> (String, u32, String) { let mut path_parts = path.rsplit('/').collect::>(); let filename_part = path_parts.pop().unwrap_or(""); @@ -29,20 +29,20 @@ pub fn parse_image_request(path: &str) -> (String, u32, String) { if let Some((base_name, width_str)) = name_part.rsplit_once('_') { if let Ok(w) = width_str.parse::() { return ( - format!("{}.{}", base_name, ext_part), + base_name.to_string(), max(w, width), ext_part.to_string(), ); } } ( - format!("{}.{}", name_part, ext_part), + name_part.to_string(), width, ext_part.to_string().to_lowercase(), ) } else { // Если расширение отсутствует, возвращаем имя файла как есть, ширину 0 и пустую строку для расширения - (filename_part.to_string(), width, "".to_string()) + (filename_part.to_string(), 0, "".to_string()) } }