diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs index 57c56d4b8..6f39189f5 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -456,18 +456,6 @@ namespace NzbDrone.Core.MetadataSource.SkyHook return newAlternativeTitle; } - private static MovieCollection MapCollection(CollectionResource arg) - { - var newCollection = new MovieCollection - { - Name = arg.Name, - TmdbId = arg.TmdbId, - Images = arg.Images.Select(MapImage).ToList() - }; - - return newCollection; - } - private static Ratings MapRatings(RatingResource rating) { if (rating == null) diff --git a/src/NzbDrone.Core/NetImport/TMDb/Collection/TMDbCollectionImport.cs b/src/NzbDrone.Core/NetImport/TMDb/Collection/TMDbCollectionImport.cs index 99c4ad3f3..907636036 100644 --- a/src/NzbDrone.Core/NetImport/TMDb/Collection/TMDbCollectionImport.cs +++ b/src/NzbDrone.Core/NetImport/TMDb/Collection/TMDbCollectionImport.cs @@ -1,4 +1,4 @@ -using NLog; +using NLog; using NzbDrone.Common.Cloud; using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; @@ -25,7 +25,7 @@ namespace NzbDrone.Core.NetImport.TMDb.Collection public override IParseNetImportResponse GetParser() { - return new TMDbCollectionParser(_skyhookProxy); + return new TMDbCollectionParser(); } public override INetImportRequestGenerator GetRequestGenerator() diff --git a/src/NzbDrone.Core/NetImport/TMDb/Collection/TMDbCollectionParser.cs b/src/NzbDrone.Core/NetImport/TMDb/Collection/TMDbCollectionParser.cs index cad49b1dc..22a58d74b 100644 --- a/src/NzbDrone.Core/NetImport/TMDb/Collection/TMDbCollectionParser.cs +++ b/src/NzbDrone.Core/NetImport/TMDb/Collection/TMDbCollectionParser.cs @@ -8,14 +8,6 @@ namespace NzbDrone.Core.NetImport.TMDb.Collection { public class TMDbCollectionParser : TMDbParser { - private readonly ISearchForNewMovie _skyhookProxy; - - public TMDbCollectionParser(ISearchForNewMovie skyhookProxy) - : base(skyhookProxy) - { - _skyhookProxy = skyhookProxy; - } - public override IList ParseResponse(NetImportResponse importResponse) { var movies = new List(); @@ -41,7 +33,7 @@ namespace NzbDrone.Core.NetImport.TMDb.Collection continue; } - movies.AddIfNotNull(new Movie { TmdbId = movie.id }); + movies.AddIfNotNull(MapListMovie(movie)); } return movies; diff --git a/src/NzbDrone.Core/NetImport/TMDb/List/TMDbListImport.cs b/src/NzbDrone.Core/NetImport/TMDb/List/TMDbListImport.cs index 37325b085..7f52d82ee 100644 --- a/src/NzbDrone.Core/NetImport/TMDb/List/TMDbListImport.cs +++ b/src/NzbDrone.Core/NetImport/TMDb/List/TMDbListImport.cs @@ -1,4 +1,4 @@ -using NLog; +using NLog; using NzbDrone.Common.Cloud; using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; @@ -25,7 +25,7 @@ namespace NzbDrone.Core.NetImport.TMDb.List public override IParseNetImportResponse GetParser() { - return new TMDbListParser(_skyhookProxy); + return new TMDbListParser(); } public override INetImportRequestGenerator GetRequestGenerator() diff --git a/src/NzbDrone.Core/NetImport/TMDb/List/TMDbListParser.cs b/src/NzbDrone.Core/NetImport/TMDb/List/TMDbListParser.cs index 31ca17adc..56dace7d2 100644 --- a/src/NzbDrone.Core/NetImport/TMDb/List/TMDbListParser.cs +++ b/src/NzbDrone.Core/NetImport/TMDb/List/TMDbListParser.cs @@ -8,14 +8,6 @@ namespace NzbDrone.Core.NetImport.TMDb.List { public class TMDbListParser : TMDbParser { - private readonly ISearchForNewMovie _skyhookProxy; - - public TMDbListParser(ISearchForNewMovie skyhookProxy) - : base(skyhookProxy) - { - _skyhookProxy = skyhookProxy; - } - public override IList ParseResponse(NetImportResponse importResponse) { var movies = new List(); @@ -41,7 +33,7 @@ namespace NzbDrone.Core.NetImport.TMDb.List continue; } - movies.AddIfNotNull(new Movie { TmdbId = movie.id }); + movies.AddIfNotNull(MapListMovie(movie)); } return movies; diff --git a/src/NzbDrone.Core/NetImport/TMDb/Person/TMDbPersonImport.cs b/src/NzbDrone.Core/NetImport/TMDb/Person/TMDbPersonImport.cs index 3d1af7ea1..3175b8597 100644 --- a/src/NzbDrone.Core/NetImport/TMDb/Person/TMDbPersonImport.cs +++ b/src/NzbDrone.Core/NetImport/TMDb/Person/TMDbPersonImport.cs @@ -1,4 +1,4 @@ -using NLog; +using NLog; using NzbDrone.Common.Cloud; using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; @@ -25,7 +25,7 @@ namespace NzbDrone.Core.NetImport.TMDb.Person public override IParseNetImportResponse GetParser() { - return new TMDbPersonParser(Settings, _skyhookProxy); + return new TMDbPersonParser(Settings); } public override INetImportRequestGenerator GetRequestGenerator() diff --git a/src/NzbDrone.Core/NetImport/TMDb/Person/TMDbPersonParser.cs b/src/NzbDrone.Core/NetImport/TMDb/Person/TMDbPersonParser.cs index 3692b7eb4..e7176b23e 100644 --- a/src/NzbDrone.Core/NetImport/TMDb/Person/TMDbPersonParser.cs +++ b/src/NzbDrone.Core/NetImport/TMDb/Person/TMDbPersonParser.cs @@ -9,13 +9,10 @@ namespace NzbDrone.Core.NetImport.TMDb.Person public class TMDbPersonParser : TMDbParser { private readonly TMDbPersonSettings _settings; - private readonly ISearchForNewMovie _skyhookProxy; - public TMDbPersonParser(TMDbPersonSettings settings, ISearchForNewMovie skyhookProxy) - : base(skyhookProxy) + public TMDbPersonParser(TMDbPersonSettings settings) { _settings = settings; - _skyhookProxy = skyhookProxy; } public override IList ParseResponse(NetImportResponse importResponse) diff --git a/src/NzbDrone.Core/NetImport/TMDb/Popular/TMDbPopularImport.cs b/src/NzbDrone.Core/NetImport/TMDb/Popular/TMDbPopularImport.cs index 20a352308..16859dc45 100644 --- a/src/NzbDrone.Core/NetImport/TMDb/Popular/TMDbPopularImport.cs +++ b/src/NzbDrone.Core/NetImport/TMDb/Popular/TMDbPopularImport.cs @@ -1,4 +1,4 @@ -using NLog; +using NLog; using NzbDrone.Common.Cloud; using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; @@ -25,7 +25,7 @@ namespace NzbDrone.Core.NetImport.TMDb.Popular public override IParseNetImportResponse GetParser() { - return new TMDbParser(_skyhookProxy); + return new TMDbParser(); } public override INetImportRequestGenerator GetRequestGenerator() diff --git a/src/NzbDrone.Core/NetImport/TMDb/TMDbParser.cs b/src/NzbDrone.Core/NetImport/TMDb/TMDbParser.cs index f6fcd0f6b..bead01687 100644 --- a/src/NzbDrone.Core/NetImport/TMDb/TMDbParser.cs +++ b/src/NzbDrone.Core/NetImport/TMDb/TMDbParser.cs @@ -1,7 +1,10 @@ +using System; using System.Collections.Generic; +using System.Globalization; using System.Net; using Newtonsoft.Json; using NzbDrone.Common.Extensions; +using NzbDrone.Core.MediaCover; using NzbDrone.Core.MetadataSource; using NzbDrone.Core.Movies; using NzbDrone.Core.NetImport.Exceptions; @@ -10,13 +13,6 @@ namespace NzbDrone.Core.NetImport.TMDb { public class TMDbParser : IParseNetImportResponse { - private readonly ISearchForNewMovie _skyhookProxy; - - public TMDbParser(ISearchForNewMovie skyhookProxy) - { - _skyhookProxy = skyhookProxy; - } - public virtual IList ParseResponse(NetImportResponse importResponse) { var movies = new List(); @@ -34,7 +30,39 @@ namespace NzbDrone.Core.NetImport.TMDb return movies; } - return jsonResponse.Results.SelectList(m => new Movie { TmdbId = m.id }); + return jsonResponse.Results.SelectList(MapListMovie); + } + + protected Movie MapListMovie(MovieResult movieResult) + { + var movie = new Movie + { + TmdbId = movieResult.id, + Overview = movieResult.overview, + Title = movieResult.original_title, + SortTitle = Parser.Parser.NormalizeTitle(movieResult.original_title), + Images = new List() + }; + + if (movieResult.release_date.IsNotNullOrWhiteSpace()) + { + DateTime.TryParse(movieResult.release_date, out var releaseDate); + movie.Year = releaseDate.Year; + } + + movie.Images.AddIfNotNull(MapPosterImage(movieResult.poster_path)); + + return movie; + } + + private MediaCover.MediaCover MapPosterImage(string path) + { + if (path.IsNotNullOrWhiteSpace()) + { + return new MediaCover.MediaCover(MediaCoverTypes.Poster, $"https://image.tmdb.org/t/p/original{path}"); + } + + return null; } protected virtual bool PreProcess(NetImportResponse listResponse) diff --git a/src/NzbDrone.Core/NetImport/TMDb/User/TMDbUserImport.cs b/src/NzbDrone.Core/NetImport/TMDb/User/TMDbUserImport.cs index faf866887..862580008 100644 --- a/src/NzbDrone.Core/NetImport/TMDb/User/TMDbUserImport.cs +++ b/src/NzbDrone.Core/NetImport/TMDb/User/TMDbUserImport.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using NLog; using NzbDrone.Common.Cloud; using NzbDrone.Common.Http; @@ -27,7 +27,7 @@ namespace NzbDrone.Core.NetImport.TMDb.User public override IParseNetImportResponse GetParser() { - return new TMDbParser(_skyhookProxy); + return new TMDbParser(); } public override INetImportRequestGenerator GetRequestGenerator()