diff --git a/src/files.rs b/src/files.rs index 121f8d9..63a9804 100644 --- a/src/files.rs +++ b/src/files.rs @@ -67,6 +67,12 @@ pub async fn list_photos( "Failed to get files with tag_ids: {:?} with filter_mode: {:?}", tag_ids, filter_mode )) + .map(|tagged_files| { + tagged_files + .into_iter() + .filter(|f| f.starts_with(search_path)) + .collect::>() + }) .inspect(|files| debug!("Found {:?} files", files.len())) .map(|tagged_files: Vec| { trace!( @@ -123,12 +129,13 @@ pub async fn list_photos( let file_tags = tag_dao.get_tags_for_path(file_path).unwrap_or_default(); let excluded = file_tags.iter().any(|t| excluded_tag_ids.contains(&t.id)); - return !excluded && match filter_mode { - FilterMode::Any => file_tags.iter().any(|t| tag_ids.contains(&t.id)), - FilterMode::All => tag_ids - .iter() - .all(|id| file_tags.iter().any(|tag| &tag.id == id)), - }; + return !excluded + && match filter_mode { + FilterMode::Any => file_tags.iter().any(|t| tag_ids.contains(&t.id)), + FilterMode::All => tag_ids + .iter() + .all(|id| file_tags.iter().any(|tag| &tag.id == id)), + }; } true