diff --git a/api/src/category.rs b/api/src/category.rs index e49b576..aa2f95a 100644 --- a/api/src/category.rs +++ b/api/src/category.rs @@ -36,21 +36,25 @@ pub fn get_category_dirs(path: &str) -> std::io::Result> { } pub fn get_category_thumbnail(category: &str) -> std::io::Result { - let pathname = format!("{}{}", thumbs_dir(), &category); + let pathname = format!("{}/{}", thumbs_dir(), &category); let path = Path::new(&pathname); - println!("Path to use {:?}", path); // Assume its a directory - let mut ret = "/static/cantfindshit.jpg".to_string(); - for ent in path.read_dir()? { - if let Ok(ent) = ent { - let name = ent.file_name().into_string().unwrap(); - if name == "category-thumbnail.jpg" { - ret = format!("/thumbnail/{}/{}", category, name); - } + let item = path.read_dir()?.find(|file| { + if let Ok(file) = file { + let name = file.file_name().into_string().unwrap(); + name == "category-thumbnail.jpg" + } else { + false } - } + }); - return Ok(ret); + return Ok(match item { + Some(name) => { + let name = name.unwrap().file_name().into_string().unwrap(); + format!("/thumbnail/{}/{}", category, name) + }, + None => "/static/cantfindshit.jpg".to_string() + }) } #[get("/categories")]