internal async Task <RootObject> FetchMainResult(string id, int seasonNumber, int episodeNumber, string language, CancellationToken cancellationToken) { var url = string.Format(GetTvInfo3, id, seasonNumber.ToString(CultureInfo.InvariantCulture), episodeNumber, MovieDbProvider.ApiKey); if (!string.IsNullOrEmpty(language)) { url += string.Format("&language={0}", language); } var includeImageLanguageParam = MovieDbProvider.GetImageLanguagesParam(_localization, language); // Get images in english and with no language url += "&include_image_language=" + includeImageLanguageParam; cancellationToken.ThrowIfCancellationRequested(); using (var json = await MovieDbProvider.Current.GetMovieDbResponse(new HttpRequestOptions { Url = url, CancellationToken = cancellationToken, AcceptHeader = MovieDbProvider.AcceptHeader }).ConfigureAwait(false)) { return(_jsonSerializer.DeserializeFromStream <RootObject>(json)); } }
private async Task <RootObject> FetchMainResult(string id, string language, CancellationToken cancellationToken) { var url = string.Format(GetCollectionInfo3, id, MovieDbProvider.ApiKey); if (!string.IsNullOrEmpty(language)) { url += string.Format("&language={0}", MovieDbProvider.NormalizeLanguage(language)); // Get images in english and with no language url += "&include_image_language=" + MovieDbProvider.GetImageLanguagesParam(language); } cancellationToken.ThrowIfCancellationRequested(); RootObject mainResult = null; using (var response = await MovieDbProvider.Current.GetMovieDbResponse(new HttpRequestOptions { Url = url, CancellationToken = cancellationToken, AcceptHeader = MovieDbSearch.AcceptHeader }).ConfigureAwait(false)) { using (var json = response.Content) { mainResult = await _json.DeserializeFromStreamAsync <RootObject>(json).ConfigureAwait(false); } } cancellationToken.ThrowIfCancellationRequested(); if (mainResult != null && string.IsNullOrEmpty(mainResult.name)) { if (!string.IsNullOrEmpty(language) && !string.Equals(language, "en", StringComparison.OrdinalIgnoreCase)) { 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 response = await MovieDbProvider.Current.GetMovieDbResponse(new HttpRequestOptions { Url = url, CancellationToken = cancellationToken, AcceptHeader = MovieDbSearch.AcceptHeader }).ConfigureAwait(false)) { using (var json = response.Content) { mainResult = await _json.DeserializeFromStreamAsync <RootObject>(json).ConfigureAwait(false); } } } } return(mainResult); }
internal async Task <RootObject> FetchMainResult(string id, string language, CancellationToken cancellationToken) { var url = string.Format(GetTvInfo3, id, MovieDbProvider.ApiKey); if (!string.IsNullOrEmpty(language)) { url += string.Format("&language={0}", MovieDbProvider.NormalizeLanguage(language)); // Get images in english and with no language url += "&include_image_language=" + MovieDbProvider.GetImageLanguagesParam(language); } cancellationToken.ThrowIfCancellationRequested(); RootObject mainResult; using (var json = await MovieDbProvider.Current.GetMovieDbResponse(new HttpRequestOptions { Url = url, CancellationToken = cancellationToken, AcceptHeader = MovieDbProvider.AcceptHeader }).ConfigureAwait(false)) { mainResult = _jsonSerializer.DeserializeFromStream <RootObject>(json); } cancellationToken.ThrowIfCancellationRequested(); // If the language preference isn't english, then have the overview fallback to english if it's blank if (mainResult != null && string.IsNullOrEmpty(mainResult.overview) && !string.IsNullOrEmpty(language) && !string.Equals(language, "en", StringComparison.OrdinalIgnoreCase)) { _logger.Info("MovieDbSeriesProvider couldn't find meta for language " + language + ". Trying English..."); 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 { Url = url, CancellationToken = cancellationToken, AcceptHeader = MovieDbProvider.AcceptHeader }).ConfigureAwait(false)) { var englishResult = _jsonSerializer.DeserializeFromStream <RootObject>(json); mainResult.overview = englishResult.overview; } } return(mainResult); }