Merge FS and DB library raw items.

This commit is contained in:
Florian THIERRY
2026-07-17 11:54:22 +02:00
parent 4abd7dc5b9
commit ad44b181cb
5 changed files with 32 additions and 16 deletions
+13 -3
View File
@@ -20,11 +20,21 @@ impl VideoService {
pub fn list_root_folder(&self) -> Result<Vec<LibraryItem>, VideoError> {
let read_items_with_possibly_no_id = self.video_port.list_root_folder()?;
let items_with_id = read_items_with_possibly_no_id.iter()
let new_items = read_items_with_possibly_no_id.iter()
.filter(|item| item.id.is_none())
.map(LibraryRawItem::map_to_library_item)
.collect();
self.video_port.save_all(&items_with_id)?;
Ok(items_with_id)
let already_existing_items = read_items_with_possibly_no_id.iter()
.filter(|item| item.id.is_some())
.map(LibraryRawItem::map_to_library_item)
.collect::<Vec<LibraryItem>>();
self.video_port.save_all(&new_items)?;
let all_items = already_existing_items.into_iter().chain(new_items).collect();
Ok(all_items)
}
}