From 7731536c796aa35432cf16c518708cc64537980f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Miguel=20Alm=C3=A1nzar?= Date: Thu, 27 Jun 2013 23:54:43 -0400 Subject: [PATCH] Fixes #310 - Use minimun release date for movieDB provider if no matching user release code nor us release --- .../Movies/MovieDbProvider.cs | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/MediaBrowser.Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Providers/Movies/MovieDbProvider.cs index eeae8b5fd4..accddc75ac 100644 --- a/MediaBrowser.Providers/Movies/MovieDbProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbProvider.cs @@ -702,15 +702,22 @@ namespace MediaBrowser.Providers.Movies if (float.TryParse(voteAvg, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out rating)) movie.CommunityRating = rating; - //release date and certification are retrieved based on configured country and we fall back on US if not there + //release date and certification are retrieved based on configured country and we fall back on US if not there and to minimun release date if still no match if (movieData.releases != null && movieData.releases.countries != null) { var ourRelease = movieData.releases.countries.FirstOrDefault(c => c.iso_3166_1.Equals(ConfigurationManager.Configuration.MetadataCountryCode, StringComparison.OrdinalIgnoreCase)) ?? new Country(); var usRelease = movieData.releases.countries.FirstOrDefault(c => c.iso_3166_1.Equals("US", StringComparison.OrdinalIgnoreCase)) ?? new Country(); + var minimunRelease = movieData.releases.countries.OrderBy(c => c.release_date).FirstOrDefault() ?? new Country(); var ratingPrefix = ConfigurationManager.Configuration.MetadataCountryCode.Equals("us", StringComparison.OrdinalIgnoreCase) ? "" : ConfigurationManager.Configuration.MetadataCountryCode +"-"; - movie.OfficialRating = !string.IsNullOrEmpty(ourRelease.certification) ? ratingPrefix + ourRelease.certification : !string.IsNullOrEmpty(usRelease.certification) ? usRelease.certification : null; + movie.OfficialRating = !string.IsNullOrEmpty(ourRelease.certification) + ? ratingPrefix + ourRelease.certification + : !string.IsNullOrEmpty(usRelease.certification) + ? usRelease.certification + : !string.IsNullOrEmpty(minimunRelease.certification) + ? minimunRelease.iso_3166_1 + "-" + minimunRelease.certification + : null; - if (ourRelease.release_date > new DateTime(1900, 1, 1)) + if (ourRelease.release_date != default(DateTime)) { if (ourRelease.release_date.Year != 1) { @@ -718,7 +725,7 @@ namespace MediaBrowser.Providers.Movies movie.ProductionYear = ourRelease.release_date.Year; } } - else + else if(usRelease.release_date != default (DateTime)) { if (usRelease.release_date.Year != 1) { @@ -726,6 +733,15 @@ namespace MediaBrowser.Providers.Movies movie.ProductionYear = usRelease.release_date.Year; } } + else if (minimunRelease.release_date != default (DateTime)) + { + if (minimunRelease.release_date.Year != 1) + { + + movie.PremiereDate = minimunRelease.release_date.ToUniversalTime(); + movie.ProductionYear = minimunRelease.release_date.Year; + } + } } else {