Selaa lähdekoodia

Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser

Luke Pulverenti 12 vuotta sitten
vanhempi
sitoutus
fa53ad940f
1 muutettua tiedostoa jossa 10 lisäystä ja 16 poistoa
  1. 10 16
      MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs

+ 10 - 16
MediaBrowser.Controller/Providers/Movies/MovieDbProvider.cs

@@ -33,6 +33,8 @@ namespace MediaBrowser.Controller.Providers.Movies
     /// </summary>
     public class MovieDbProvider : BaseMetadataProvider, IDisposable
     {
+        protected static CultureInfo EnUs = new CultureInfo("en-US");
+
         protected readonly IProviderManager ProviderManager;
 
         /// <summary>
@@ -548,7 +550,7 @@ namespace MediaBrowser.Controller.Providers.Movies
                 foreach (var possible in searchResult.results)
                 {
                     string matchedName = null;
-                    string id = possible.id.ToString();
+                    string id = possible.id.ToString(CultureInfo.InvariantCulture);
                     string n = possible.title;
                     if (GetComparableName(n, Logger) == compName)
                     {
@@ -606,7 +608,8 @@ namespace MediaBrowser.Controller.Providers.Movies
                         {
                             DateTime r;
 
-                            if (DateTime.TryParse(possible.release_date, out r))
+                            //These dates are always in this exact format
+                            if (DateTime.TryParseExact(possible.release_date, "yyyy-MM-dd", EnUs, DateTimeStyles.None,  out r))
                             {
                                 if (Math.Abs(r.Year - year.Value) > 1) // allow a 1 year tolerance on release date
                                 {
@@ -909,19 +912,10 @@ namespace MediaBrowser.Controller.Providers.Movies
                 if (!string.IsNullOrEmpty(movieData.tagline)) movie.AddTagline(movieData.tagline);
                 movie.SetProviderId(MetadataProviders.Imdb, movieData.imdb_id);
                 float rating;
-                string voteAvg = movieData.vote_average.ToString();
-                string cultureStr = ConfigurationManager.Configuration.PreferredMetadataLanguage + "-" + ConfigurationManager.Configuration.MetadataCountryCode;
-                CultureInfo culture;
-                try
-                {
-                    culture = new CultureInfo(cultureStr);
-                }
-                catch
-                {
-                    culture = CultureInfo.CurrentCulture; //default to windows settings if other was invalid
-                }
-                Logger.Debug("Culture for numeric conversion is: " + culture.Name);
-                if (float.TryParse(voteAvg, NumberStyles.AllowDecimalPoint, culture, out rating))
+                string voteAvg = movieData.vote_average.ToString(CultureInfo.InvariantCulture);
+                //tmdb appears to have unified their numbers to always report "7.3" regardless of country
+                // so I removed the culture-specific processing here because it was not working for other countries -ebr
+                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
@@ -1057,7 +1051,7 @@ namespace MediaBrowser.Controller.Providers.Movies
                 var numToFetch = Math.Min(ConfigurationManager.Configuration.MaxBackdrops, images.backdrops.Count);
                 for (var i = 0; i < numToFetch; i++)
                 {
-                    var bdName = "backdrop" + (i == 0 ? "" : i.ToString());
+                    var bdName = "backdrop" + (i == 0 ? "" : i.ToString(CultureInfo.InvariantCulture));
 
                     if (ConfigurationManager.Configuration.RefreshItemImages || !item.HasLocalImage(bdName))
                     {