fix: movies getting coellesed sometimes would select all for deletion
This commit is contained in:
Generated
+1
-1
@@ -651,7 +651,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jelly-dedup"
|
name = "jelly-dedup"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"dotenv",
|
"dotenv",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "jelly-dedup"
|
name = "jelly-dedup"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|||||||
+9
-2
@@ -163,12 +163,19 @@ pub fn print_duplicate_movies(movie_groups: Vec<Vec<Movie>>) -> Vec<FileToDelete
|
|||||||
println!("{}", "-".repeat(80));
|
println!("{}", "-".repeat(80));
|
||||||
println!(" Multiple copies found: {}\n", movie_group.len());
|
println!(" Multiple copies found: {}\n", movie_group.len());
|
||||||
|
|
||||||
// Collect all media sources from all movies
|
// Collect all media sources from all movies and deduplicate by path
|
||||||
let mut all_sources: Vec<MediaSource> = Vec::new();
|
let mut all_sources: Vec<MediaSource> = Vec::new();
|
||||||
|
let mut seen_paths: std::collections::HashSet<String> = std::collections::HashSet::new();
|
||||||
|
|
||||||
for movie in &movie_group {
|
for movie in &movie_group {
|
||||||
if let Some(media_sources) = &movie.media_sources {
|
if let Some(media_sources) = &movie.media_sources {
|
||||||
for source in media_sources {
|
for source in media_sources {
|
||||||
all_sources.push(source.clone());
|
// Only add if we haven't seen this path before
|
||||||
|
if let Some(path) = &source.path {
|
||||||
|
if seen_paths.insert(path.clone()) {
|
||||||
|
all_sources.push(source.clone());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user