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]]
|
||||
name = "jelly-dedup"
|
||||
version = "0.1.0"
|
||||
version = "0.1.1"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"dotenv",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "jelly-dedup"
|
||||
version = "0.1.0"
|
||||
version = "0.1.1"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
|
||||
+8
-1
@@ -163,15 +163,22 @@ pub fn print_duplicate_movies(movie_groups: Vec<Vec<Movie>>) -> Vec<FileToDelete
|
||||
println!("{}", "-".repeat(80));
|
||||
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 seen_paths: std::collections::HashSet<String> = std::collections::HashSet::new();
|
||||
|
||||
for movie in &movie_group {
|
||||
if let Some(media_sources) = &movie.media_sources {
|
||||
for source in media_sources {
|
||||
// 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if !all_sources.is_empty() {
|
||||
let to_delete = print_movie_versions(&first_movie.name, &all_sources);
|
||||
|
||||
Reference in New Issue
Block a user