From d39aef5fd4c97d025bd6f64b233f68930cede713 Mon Sep 17 00:00:00 2001 From: Pierre <63404022+0-Pierre@users.noreply.github.com> Date: Thu, 27 Mar 2025 13:19:20 +0100 Subject: [PATCH] fix: recently added albums are now correctly marked as available when using Plex as the media server --- server/api/plexapi.ts | 15 +++++++++++---- server/lib/scanners/baseScanner.ts | 5 +++++ server/lib/scanners/plex/index.ts | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/server/api/plexapi.ts b/server/api/plexapi.ts index ceb11ecb..ec1fe22d 100644 --- a/server/api/plexapi.ts +++ b/server/api/plexapi.ts @@ -230,12 +230,19 @@ class PlexAPI { options: { addedAt: number } = { addedAt: Date.now() - 1000 * 60 * 60, }, - mediaType: 'movie' | 'show' | 'artist' + mediaType: 'movie' | 'show' | 'album' ): Promise { + let typeCode = '1'; + if (mediaType === 'show') { + typeCode = '4'; + } else if (mediaType === 'album') { + typeCode = '9'; + } + const response = await this.plexClient.query({ - uri: `/library/sections/${id}/all?type=${ - mediaType === 'show' ? '4' : '1' - }&sort=addedAt%3Adesc&addedAt>>=${Math.floor(options.addedAt / 1000)}`, + uri: `/library/sections/${id}/all?type=${typeCode}&sort=addedAt%3Adesc&addedAt>>=${Math.floor( + options.addedAt / 1000 + )}`, extraHeaders: { 'X-Plex-Container-Start': `0`, 'X-Plex-Container-Size': `500`, diff --git a/server/lib/scanners/baseScanner.ts b/server/lib/scanners/baseScanner.ts index a498cd62..ec2b91a7 100644 --- a/server/lib/scanners/baseScanner.ts +++ b/server/lib/scanners/baseScanner.ts @@ -586,6 +586,11 @@ class BaseScanner { } else { let hasChanges = false; + if (existing.status !== MediaStatus.AVAILABLE && !processing) { + existing.status = MediaStatus.AVAILABLE; + hasChanges = true; + } + if (serviceId && !existing.serviceId) { existing.serviceId = serviceId; hasChanges = true; diff --git a/server/lib/scanners/plex/index.ts b/server/lib/scanners/plex/index.ts index 2aba8f6e..58316f24 100644 --- a/server/lib/scanners/plex/index.ts +++ b/server/lib/scanners/plex/index.ts @@ -97,7 +97,7 @@ class PlexScanner 'info', { lastScan: library.lastScan } ); - const mappedType = library.type === 'music' ? 'artist' : library.type; + const mappedType = library.type === 'music' ? 'album' : library.type; const libraryItems = await this.plexClient.getRecentlyAdded( library.id, library.lastScan