feat: add central metadata output handler
Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) <aider@aider.chat>
This commit is contained in:
@@ -38,6 +38,19 @@ pub enum MetaPluginType {
|
||||
FullHostname,
|
||||
}
|
||||
|
||||
/// Central function to handle metadata output with name mapping
|
||||
pub fn output_metadata(conn: &Connection, item_id: i64, name: &str, value: String, output_names: &std::collections::HashMap<String, String>) -> Result<()> {
|
||||
let output_name = output_names.get(name).cloned().unwrap_or_else(|| name.to_string());
|
||||
debug!("META: Saving metadata: item_id={}, name={}, value={}", item_id, output_name, value);
|
||||
let meta = crate::db::Meta {
|
||||
id: item_id,
|
||||
name: output_name,
|
||||
value,
|
||||
};
|
||||
crate::db::store_meta(conn, meta)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub trait MetaPlugin {
|
||||
fn is_supported(&self) -> bool {
|
||||
true
|
||||
@@ -64,17 +77,11 @@ pub trait MetaPlugin {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// Save metadata to database
|
||||
// Save metadata to database using central output handler
|
||||
fn save_meta(&mut self, conn: &Connection, item_id: i64, value: String) -> Result<()> {
|
||||
let meta_name = self.meta_name();
|
||||
debug!("META: Saving metadata: item_id={}, name={}, value={}", item_id, meta_name, value);
|
||||
let meta = crate::db::Meta {
|
||||
id: item_id,
|
||||
name: meta_name,
|
||||
value,
|
||||
};
|
||||
crate::db::store_meta(conn, meta)?;
|
||||
Ok(())
|
||||
// Default implementation: no output name mapping
|
||||
output_metadata(conn, item_id, &meta_name, value, &std::collections::HashMap::new())
|
||||
}
|
||||
|
||||
// Configure plugin with options
|
||||
|
||||
Reference in New Issue
Block a user