diff --git a/src/services/meta_service.rs b/src/services/meta_service.rs index a7562b0..e696276 100644 --- a/src/services/meta_service.rs +++ b/src/services/meta_service.rs @@ -80,6 +80,27 @@ impl MetaService { conn: &Connection, item_id: i64, ) { + // Check for duplicate output names before initializing plugins + let mut output_names: std::collections::HashMap> = std::collections::HashMap::new(); + + for plugin in plugins.iter() { + let plugin_name = plugin.meta_name(); + for output_name in plugin.outputs().keys() { + output_names.entry(output_name.clone()) + .or_insert_with(Vec::new) + .push(plugin_name.clone()); + } + } + + // Print warnings for duplicate output names + for (output_name, plugin_names) in &output_names { + if plugin_names.len() > 1 { + eprintln!("Warning: Output name '{}' is provided by multiple plugins: {}", + output_name, + plugin_names.join(", ")); + } + } + for meta_plugin in plugins.iter_mut() { if let Err(e) = meta_plugin.initialize(conn, item_id) { eprintln!("Warning: Failed to initialize meta plugin: {}", e);