fix: synchronisation dédoublonnage entre upload web et watcher

- Ajout de dedup_db_path dans AppState (partagé avec le watcher)
- upload_image() calcule le SHA-256 avant upload et marque le hash
  dans la DB de dédoublonnage après succès
- Le watcher voit maintenant les fichiers uploadés via le dashboard
  comme 'déjà vus' → plus de doublons watcher/drag-and-drop
- Correction compilation: indentation du match upload_image
This commit is contained in:
2026-06-25 13:18:08 -04:00
parent ed3ef23d2f
commit e867dadb1f
2 changed files with 33 additions and 9 deletions
+11
View File
@@ -32,12 +32,23 @@ pub async fn serve_with_config(host: &str, port: u16, config: &Config) -> anyhow
// Hub WebSocket
let ws_hub = ws::WsHub::new();
// Base de données de dédoublonnage (partagée avec le watcher)
let data_dir = if cfg!(target_os = "windows") {
let appdata = std::env::var("APPDATA").unwrap_or_else(|_| ".".into());
std::path::PathBuf::from(appdata)
} else {
let home = std::env::var("HOME").unwrap_or_else(|_| "/tmp".into());
std::path::PathBuf::from(home).join(".config")
};
let dedup_db_path = data_dir.join("imagod-web").join("imagod.db");
// État partagé
let state = routes::AppState {
imago,
base_url: config.imago.url.clone(),
api_key: config.imago.api_key.clone(),
ws_hub: ws_hub.clone(),
dedup_db_path,
};
// Router principal