fix: nettoyer les available_downloads orphelins lors de la détection
Supprime les entrées available_downloads dont le series_name ne correspond plus à aucune série existante dans books, au début de chaque job de détection de téléchargements. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -446,6 +446,22 @@ pub(crate) async fn process_download_detection(
|
|||||||
.await
|
.await
|
||||||
.map_err(|e| e.to_string())?;
|
.map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
|
// Clean up available_downloads for series that no longer exist in books
|
||||||
|
sqlx::query(
|
||||||
|
r#"
|
||||||
|
DELETE FROM available_downloads
|
||||||
|
WHERE library_id = $1
|
||||||
|
AND series_name NOT IN (
|
||||||
|
SELECT DISTINCT COALESCE(NULLIF(series, ''), 'unclassified')
|
||||||
|
FROM books WHERE library_id = $1
|
||||||
|
)
|
||||||
|
"#,
|
||||||
|
)
|
||||||
|
.bind(library_id)
|
||||||
|
.execute(pool)
|
||||||
|
.await
|
||||||
|
.map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
let total = all_series.len() as i32;
|
let total = all_series.len() as i32;
|
||||||
sqlx::query("UPDATE index_jobs SET total_files = $2 WHERE id = $1")
|
sqlx::query("UPDATE index_jobs SET total_files = $2 WHERE id = $1")
|
||||||
.bind(job_id)
|
.bind(job_id)
|
||||||
|
|||||||
Reference in New Issue
Block a user