From 3c41c84fb063c9b0be5e5fd065bb90bf286e03b1 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sun, 17 Jul 2022 12:57:00 -0500 Subject: [PATCH] Speed up and reduce meta calls for Imdb Lists when mapping --- .../MetadataSource/SkyHook/SkyHookProxy.cs | 7 +++++++ src/NzbDrone.Core/Movies/MovieMetadataRepository.cs | 10 ++++++++-- src/NzbDrone.Core/Movies/MovieMetadataService.cs | 12 +++++++++--- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs index ed90091b3..09336c062 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -327,6 +327,13 @@ namespace NzbDrone.Core.MetadataSource.SkyHook } else if (movie.ImdbId.IsNotNullOrWhiteSpace()) { + newMovie = _movieMetadataService.FindByImdbId(Parser.Parser.NormalizeImdbId(movie.ImdbId)); + + if (newMovie != null) + { + return newMovie; + } + newMovie = GetMovieByImdbId(movie.ImdbId); } else diff --git a/src/NzbDrone.Core/Movies/MovieMetadataRepository.cs b/src/NzbDrone.Core/Movies/MovieMetadataRepository.cs index bce138878..e7e6142ca 100644 --- a/src/NzbDrone.Core/Movies/MovieMetadataRepository.cs +++ b/src/NzbDrone.Core/Movies/MovieMetadataRepository.cs @@ -11,6 +11,7 @@ namespace NzbDrone.Core.Movies public interface IMovieMetadataRepository : IBasicRepository { MovieMetadata FindByTmdbId(int tmdbId); + MovieMetadata FindByImdbId(string imdbId); List FindById(List tmdbIds); List GetMoviesWithCollections(); List GetMoviesByCollectionTmdbId(int collectionId); @@ -27,9 +28,14 @@ namespace NzbDrone.Core.Movies _logger = logger; } - public MovieMetadata FindByTmdbId(int tmdbid) + public MovieMetadata FindByTmdbId(int tmdbId) { - return Query(x => x.TmdbId == tmdbid).FirstOrDefault(); + return Query(x => x.TmdbId == tmdbId).FirstOrDefault(); + } + + public MovieMetadata FindByImdbId(string imdbId) + { + return Query(x => x.ImdbId == imdbId).FirstOrDefault(); } public List FindById(List tmdbIds) diff --git a/src/NzbDrone.Core/Movies/MovieMetadataService.cs b/src/NzbDrone.Core/Movies/MovieMetadataService.cs index b0aab7ff1..8a8114c35 100644 --- a/src/NzbDrone.Core/Movies/MovieMetadataService.cs +++ b/src/NzbDrone.Core/Movies/MovieMetadataService.cs @@ -5,7 +5,8 @@ namespace NzbDrone.Core.Movies public interface IMovieMetadataService { MovieMetadata Get(int id); - MovieMetadata FindByTmdbId(int tmdbid); + MovieMetadata FindByTmdbId(int tmdbId); + MovieMetadata FindByImdbId(string imdbId); List GetMoviesWithCollections(); List GetMoviesByCollectionTmdbId(int collectionId); bool Upsert(MovieMetadata movie); @@ -21,9 +22,14 @@ namespace NzbDrone.Core.Movies _movieMetadataRepository = movieMetadataRepository; } - public MovieMetadata FindByTmdbId(int tmdbid) + public MovieMetadata FindByTmdbId(int tmdbId) { - return _movieMetadataRepository.FindByTmdbId(tmdbid); + return _movieMetadataRepository.FindByTmdbId(tmdbId); + } + + public MovieMetadata FindByImdbId(string imdbId) + { + return _movieMetadataRepository.FindByImdbId(imdbId); } public List GetMoviesWithCollections()