diff --git a/server/index.ts b/server/index.ts index 71bbe5e..a352af7 100644 --- a/server/index.ts +++ b/server/index.ts @@ -19,6 +19,7 @@ import { logger } from './logger.js' import { DATA_DIR, BASE_DIR } from './config.js' import { readAvailable, readInfohashMap, loadEnrichedSeriesData } from './lib/github-cache.js' import { pushNotif } from './lib/notifs.js' +import { readRequests, completeRequest } from './requests.js' import { checkNfoUpdates } from './lib/nfo.js' import usersRouter from './routes/users.js' @@ -161,6 +162,21 @@ server.listen(PORT, async () => { if (result.done > 0 || result.errors > 0) { pushNotif({ ...result, at: new Date().toISOString() }) } + // Marquer les demandes actives comme disponibles quand des fichiers sont importés + if (result.done > 0 && result.serieId != null) { + try { + const toComplete = readRequests().filter(r => + r.serieId === result.serieId && + (r.status === 'pending' || r.status === 'approved') + ) + for (const r of toComplete) { + completeRequest(r.id) + logger.info('requests', `Demande "${r.serieName}" passée en disponible (import automatique)`) + } + } catch (err) { + logger.warn('api', `Impossible de compléter les demandes pour série ${result.serieId} : ${err instanceof Error ? err.message : err}`) + } + } const { organizeMode, deleteTorrentOnMove } = readSettings() if (organizeMode === 'move' && deleteTorrentOnMove && result.done > 0) { try { diff --git a/server/organize-worker.ts b/server/organize-worker.ts index dead780..8ed738a 100644 --- a/server/organize-worker.ts +++ b/server/organize-worker.ts @@ -541,7 +541,7 @@ parentPort?.on('message', async (msg: any) => { } const result = await organizeTorrent(t.hash, t.name, t.save_path, seriesData, completedFileNames) - parentPort?.postMessage({ type: 'result', hash: t.hash, name: t.name, ...result }) + parentPort?.postMessage({ type: 'result', hash: t.hash, name: t.name, serieId: serieData.id ?? null, ...result }) } catch (err) { error(`Erreur lors de l'import de "${t.name}" : ${err instanceof Error ? err.message : err}`) } diff --git a/server/organize.ts b/server/organize.ts index db2d730..b2dea7c 100644 --- a/server/organize.ts +++ b/server/organize.ts @@ -234,7 +234,7 @@ export async function scanMediaPath( export async function autoOrganizeAll( listFn : () => Promise, seriesData : any[], - onResult ?: (r: { hash: string; name: string; done: number; skipped: number; errors: number; errorFiles: { file: string; error: string }[] }) => void + onResult ?: (r: { hash: string; name: string; serieId?: number | null; done: number; skipped: number; errors: number; errorFiles: { file: string; error: string }[] }) => void ): Promise { const { autoImport } = readSettings() if (!autoImport) { @@ -309,6 +309,7 @@ export async function autoOrganizeAll( onResult?.({ hash : msg.hash, name : msg.name, + serieId : msg.serieId ?? null, done : msg.done, skipped : msg.skipped, errors : msg.errors.length,