From 6fac2964c301adfb6cf1b32d6388c0c764fbda44 Mon Sep 17 00:00:00 2001 From: fallenbagel <98979876+Fallenbagel@users.noreply.github.com> Date: Sat, 13 Dec 2025 12:17:14 +0800 Subject: [PATCH] fix(jellyfin-scanner): add imdbId handling back to fix a regression from original behaviour --- server/lib/scanners/baseScanner.ts | 5 ++++- server/lib/scanners/jellyfin/index.ts | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/server/lib/scanners/baseScanner.ts b/server/lib/scanners/baseScanner.ts index 40cee3154..3f89c3cfb 100644 --- a/server/lib/scanners/baseScanner.ts +++ b/server/lib/scanners/baseScanner.ts @@ -35,6 +35,7 @@ interface ProcessOptions { mediaAddedAt?: Date; ratingKey?: string; jellyfinMediaId?: string; + imdbId?: string; serviceId?: number; externalServiceId?: number; externalServiceSlug?: string; @@ -97,6 +98,7 @@ class BaseScanner { mediaAddedAt, ratingKey, jellyfinMediaId, + imdbId, serviceId, externalServiceId, externalServiceSlug, @@ -185,6 +187,7 @@ class BaseScanner { } else { const newMedia = new Media(); newMedia.tmdbId = tmdbId; + newMedia.imdbId = imdbId; newMedia.status = !is4k && !processing @@ -277,7 +280,7 @@ class BaseScanner { (es) => es.seasonNumber === season.seasonNumber ); - // We update the rating keys in the seasons loop because we need episode counts + // We update the rating keys and jellyfinMediaId in the seasons loop because we need episode counts if (media && season.episodes > 0 && media.ratingKey !== ratingKey) { media.ratingKey = ratingKey; } diff --git a/server/lib/scanners/jellyfin/index.ts b/server/lib/scanners/jellyfin/index.ts index d6cb6210d..111da912c 100644 --- a/server/lib/scanners/jellyfin/index.ts +++ b/server/lib/scanners/jellyfin/index.ts @@ -70,7 +70,7 @@ class JellyfinScanner imdbId = result?.imdbId; } - if (imdbId && isNaN(tmdbId)) { + if (imdbId && !tmdbId) { const tmdbMovie = await this.tmdb.getMediaByImdbId({ imdbId: imdbId, }); @@ -123,7 +123,7 @@ class JellyfinScanner const extracted = await this.extractMovieIds(jellyfinitem); if (!extracted) return; - const { tmdbId, metadata } = extracted; + const { tmdbId, imdbId, metadata } = extracted; const has4k = metadata.MediaSources?.some((MediaSource) => { return MediaSource.MediaStreams.filter( @@ -150,6 +150,7 @@ class JellyfinScanner is4k: false, mediaAddedAt, jellyfinMediaId: metadata.Id, + imdbId, title: metadata.Name, }); }