diff --git a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs index e82c6a1b91..ff3d5a5b24 100644 --- a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs +++ b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs @@ -55,7 +55,7 @@ namespace MediaBrowser.Providers.BoxSets { var language = item.GetPreferredMetadataLanguage(); - var mainResult = await MovieDbBoxSetProvider.Current.GetMovieDbResult(tmdbId, language, cancellationToken).ConfigureAwait(false); + var mainResult = await MovieDbBoxSetProvider.Current.GetMovieDbResult(tmdbId, null, cancellationToken).ConfigureAwait(false); if (mainResult != null) { diff --git a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetProvider.cs b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetProvider.cs index ae6199a75d..37aaf038ff 100644 --- a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetProvider.cs +++ b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetProvider.cs @@ -169,11 +169,10 @@ namespace MediaBrowser.Providers.BoxSets if (!string.IsNullOrEmpty(language)) { url += string.Format("&language={0}", language); - } - var includeImageLanguageParam = MovieDbProvider.GetImageLanguagesParam(language); - // Get images in english and with no language - url += "&include_image_language=" + includeImageLanguageParam; + // Get images in english and with no language + url += "&include_image_language=" + MovieDbProvider.GetImageLanguagesParam(language); + } cancellationToken.ThrowIfCancellationRequested(); @@ -196,7 +195,13 @@ namespace MediaBrowser.Providers.BoxSets { if (!string.IsNullOrEmpty(language) && !string.Equals(language, "en", StringComparison.OrdinalIgnoreCase)) { - url = string.Format(GetCollectionInfo3, id, MovieDbSearch.ApiKey) + "&include_image_language=en,null&language=en"; + url = string.Format(GetCollectionInfo3, id, MovieDbSearch.ApiKey) + "&language=en"; + + if (!string.IsNullOrEmpty(language)) + { + // Get images in english and with no language + url += "&include_image_language=" + MovieDbProvider.GetImageLanguagesParam(language); + } using (var json = await MovieDbProvider.Current.GetMovieDbResponse(new HttpRequestOptions { @@ -239,15 +244,9 @@ namespace MediaBrowser.Providers.BoxSets private static string GetDataFilePath(IApplicationPaths appPaths, string tmdbId, string preferredLanguage) { - if (string.IsNullOrWhiteSpace(preferredLanguage)) - { - throw new ArgumentNullException("preferredLanguage"); - } - var path = GetDataPath(appPaths, tmdbId); - var filename = string.Format("all-{0}.json", - preferredLanguage); + var filename = string.Format("all-{0}.json", preferredLanguage ?? string.Empty); return Path.Combine(path, filename); } diff --git a/MediaBrowser.Providers/Movies/MovieDbImageProvider.cs b/MediaBrowser.Providers/Movies/MovieDbImageProvider.cs index b6f93392b3..e86ae4b047 100644 --- a/MediaBrowser.Providers/Movies/MovieDbImageProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbImageProvider.cs @@ -82,7 +82,7 @@ namespace MediaBrowser.Providers.Movies { var list = new List(); - var results = await FetchImages((BaseItem)item, _jsonSerializer, cancellationToken).ConfigureAwait(false); + var results = await FetchImages((BaseItem)item, null, _jsonSerializer, cancellationToken).ConfigureAwait(false); if (results == null) { @@ -183,14 +183,13 @@ namespace MediaBrowser.Providers.Movies /// Fetches the images. /// /// The item. + /// The language. /// The json serializer. /// The cancellation token. /// Task{MovieImages}. - private async Task FetchImages(BaseItem item, IJsonSerializer jsonSerializer, - CancellationToken cancellationToken) + private async Task FetchImages(BaseItem item, string language, IJsonSerializer jsonSerializer, CancellationToken cancellationToken) { var tmdbId = item.GetProviderId(MetadataProviders.Tmdb); - var language = item.GetPreferredMetadataLanguage(); if (string.IsNullOrWhiteSpace(tmdbId)) { diff --git a/MediaBrowser.Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Providers/Movies/MovieDbProvider.cs index 593c6f180e..9ab9e44fca 100644 --- a/MediaBrowser.Providers/Movies/MovieDbProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbProvider.cs @@ -226,10 +226,6 @@ namespace MediaBrowser.Providers.Movies { throw new ArgumentNullException("tmdbId"); } - if (string.IsNullOrEmpty(language)) - { - throw new ArgumentNullException("language"); - } var path = GetDataFilePath(tmdbId, language); @@ -253,15 +249,15 @@ namespace MediaBrowser.Providers.Movies { throw new ArgumentNullException("tmdbId"); } - if (string.IsNullOrEmpty(preferredLanguage)) - { - throw new ArgumentNullException("preferredLanguage"); - } var path = GetMovieDataPath(_configurationManager.ApplicationPaths, tmdbId); - var filename = string.Format("all-{0}.json", - preferredLanguage); + if (string.IsNullOrWhiteSpace(preferredLanguage)) + { + preferredLanguage = "alllang"; + } + + var filename = string.Format("all-{0}.json", preferredLanguage); return Path.Combine(path, filename); } @@ -298,11 +294,10 @@ namespace MediaBrowser.Providers.Movies if (!string.IsNullOrEmpty(language)) { url += string.Format("&language={0}", language); - } - var includeImageLanguageParam = GetImageLanguagesParam(language); - // Get images in english and with no language - url += "&include_image_language=" + includeImageLanguageParam; + // Get images in english and with no language + url += "&include_image_language=" + GetImageLanguagesParam(language); + } CompleteMovieData mainResult; @@ -348,7 +343,13 @@ namespace MediaBrowser.Providers.Movies { _logger.Info("MovieDbProvider couldn't find meta for language " + language + ". Trying English..."); - url = string.Format(GetMovieInfo3, id, ApiKey) + "&include_image_language=" + includeImageLanguageParam + "&language=en"; + url = string.Format(GetMovieInfo3, id, ApiKey) + "&language=en"; + + if (!string.IsNullOrEmpty(language)) + { + // Get images in english and with no language + url += "&include_image_language=" + GetImageLanguagesParam(language); + } using (var json = await GetMovieDbResponse(new HttpRequestOptions { diff --git a/MediaBrowser.Providers/TV/MovieDbSeriesImageProvider.cs b/MediaBrowser.Providers/TV/MovieDbSeriesImageProvider.cs index 3516fcbd11..f7c19988c3 100644 --- a/MediaBrowser.Providers/TV/MovieDbSeriesImageProvider.cs +++ b/MediaBrowser.Providers/TV/MovieDbSeriesImageProvider.cs @@ -55,7 +55,7 @@ namespace MediaBrowser.Providers.TV { var list = new List(); - var results = await FetchImages((BaseItem)item, _jsonSerializer, cancellationToken).ConfigureAwait(false); + var results = await FetchImages((BaseItem)item, null, _jsonSerializer, cancellationToken).ConfigureAwait(false); if (results == null) { @@ -146,14 +146,14 @@ namespace MediaBrowser.Providers.TV /// Fetches the images. /// /// The item. + /// The language. /// The json serializer. /// The cancellation token. /// Task{MovieImages}. - private async Task FetchImages(BaseItem item, IJsonSerializer jsonSerializer, + private async Task FetchImages(BaseItem item, string language, IJsonSerializer jsonSerializer, CancellationToken cancellationToken) { var tmdbId = item.GetProviderId(MetadataProviders.Tmdb); - var language = item.GetPreferredMetadataLanguage(); if (string.IsNullOrEmpty(tmdbId)) { diff --git a/MediaBrowser.Providers/TV/MovieDbSeriesProvider.cs b/MediaBrowser.Providers/TV/MovieDbSeriesProvider.cs index 994343ee24..5b4153760d 100644 --- a/MediaBrowser.Providers/TV/MovieDbSeriesProvider.cs +++ b/MediaBrowser.Providers/TV/MovieDbSeriesProvider.cs @@ -302,11 +302,10 @@ namespace MediaBrowser.Providers.TV if (!string.IsNullOrEmpty(language)) { url += string.Format("&language={0}", language); - } - var includeImageLanguageParam = MovieDbProvider.GetImageLanguagesParam(language); - // Get images in english and with no language - url += "&include_image_language=" + includeImageLanguageParam; + // Get images in english and with no language + url += "&include_image_language=" + MovieDbProvider.GetImageLanguagesParam(language); + } cancellationToken.ThrowIfCancellationRequested(); @@ -333,7 +332,13 @@ namespace MediaBrowser.Providers.TV { _logger.Info("MovieDbSeriesProvider couldn't find meta for language " + language + ". Trying English..."); - url = string.Format(GetTvInfo3, id, MovieDbProvider.ApiKey) + "&include_image_language=" + includeImageLanguageParam + "&language=en"; + url = string.Format(GetTvInfo3, id, MovieDbProvider.ApiKey) + "&language=en"; + + if (!string.IsNullOrEmpty(language)) + { + // Get images in english and with no language + url += "&include_image_language=" + MovieDbProvider.GetImageLanguagesParam(language); + } using (var json = await MovieDbProvider.Current.GetMovieDbResponse(new HttpRequestOptions { @@ -359,10 +364,6 @@ namespace MediaBrowser.Providers.TV { throw new ArgumentNullException("tmdbId"); } - if (string.IsNullOrEmpty(language)) - { - throw new ArgumentNullException("language"); - } var path = GetDataFilePath(tmdbId, language); @@ -386,15 +387,10 @@ namespace MediaBrowser.Providers.TV { throw new ArgumentNullException("tmdbId"); } - if (string.IsNullOrEmpty(preferredLanguage)) - { - throw new ArgumentNullException("preferredLanguage"); - } var path = GetSeriesDataPath(_configurationManager.ApplicationPaths, tmdbId); - var filename = string.Format("series-{0}.json", - preferredLanguage ?? string.Empty); + var filename = string.Format("series-{0}.json", preferredLanguage ?? string.Empty); return Path.Combine(path, filename); }