From b661943b286cd37d1dbabc246ea2d89664e4d209 Mon Sep 17 00:00:00 2001 From: Dispatcharr Date: Fri, 10 Oct 2025 09:13:23 -0500 Subject: [PATCH] Fixed spammed API --- apps/media_library/tasks.py | 14 ++++++++++++-- frontend/src/store/mediaLibrary.jsx | 12 ++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/apps/media_library/tasks.py b/apps/media_library/tasks.py index 1d83755d..66906d8e 100644 --- a/apps/media_library/tasks.py +++ b/apps/media_library/tasks.py @@ -511,8 +511,18 @@ def scan_library_task( processed=0, ) else: - scan.record_stage_progress("metadata", processed=0) - scan.record_stage_progress("artwork", processed=0) + if scan.metadata_status == LibraryScan.STAGE_STATUS_PENDING: + scan.record_stage_progress( + "metadata", + status=LibraryScan.STAGE_STATUS_RUNNING, + processed=scan.metadata_processed, + ) + if scan.artwork_status == LibraryScan.STAGE_STATUS_PENDING: + scan.record_stage_progress( + "artwork", + status=LibraryScan.STAGE_STATUS_RUNNING, + processed=scan.artwork_processed, + ) scanner.finalize(matched=matched, unmatched=unmatched, summary=summary) logger.info("Completed scan for library %s", library.name) diff --git a/frontend/src/store/mediaLibrary.jsx b/frontend/src/store/mediaLibrary.jsx index 2f103330..2fcf7d2b 100644 --- a/frontend/src/store/mediaLibrary.jsx +++ b/frontend/src/store/mediaLibrary.jsx @@ -13,6 +13,18 @@ const shouldRefreshMetadata = (item) => { const queueMetadataRefresh = (items, { force = false } = {}) => { if (!Array.isArray(items) || items.length === 0) return; + + if (!force) { + // Discovery pipeline now queues metadata/artwork on the backend. + // Skip client-side batching to avoid flooding the API when large scans run. + items.forEach((item) => { + if (item?.id) { + metadataRequestCache.delete(item.id); + } + }); + return; + } + const now = Date.now(); items.forEach((item) => { if (!shouldRefreshMetadata(item)) {