Fix recursive filtering under base path

This commit is contained in:
Cameron
2024-12-04 19:50:04 -05:00
parent b7f13d4cbf
commit 2b2a811cae

View File

@@ -67,6 +67,12 @@ pub async fn list_photos<TagD: TagDao, FS: FileSystemAccess>(
"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::<Vec<String>>()
})
.inspect(|files| debug!("Found {:?} files", files.len()))
.map(|tagged_files: Vec<String>| {
trace!(
@@ -123,7 +129,8 @@ pub async fn list_photos<TagD: TagDao, FS: FileSystemAccess>(
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 {
return !excluded
&& match filter_mode {
FilterMode::Any => file_tags.iter().any(|t| tag_ids.contains(&t.id)),
FilterMode::All => tag_ids
.iter()