diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs index ed90091b38..09336c062c 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -327,6 +327,13 @@ public MovieMetadata MapMovieToTmdbMovie(MovieMetadata movie) } 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 bce1388780..e7e6142cae 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 @@ public MovieMetadataRepository(IMainDatabase database, IEventAggregator eventAgg _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 b0aab7ff17..8a8114c357 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 @@ public MovieMetadataService(IMovieMetadataRepository movieMetadataRepository) _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()