From fc98351abf629b29f4d3f277727836b33196656a Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 20 Feb 2015 13:27:01 -0500 Subject: [PATCH] add language to tvdb series search --- .../TV/TvdbSeriesProvider.cs | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs index 0f7a9f7d8c..c644da0b82 100644 --- a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs +++ b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs @@ -52,17 +52,16 @@ namespace MediaBrowser.Providers.TV Current = this; } - private const string RootUrl = "http://www.thetvdb.com/api/"; - private const string SeriesQuery = "GetSeries.php?seriesname={0}"; + private const string SeriesSearchUrl = "http://www.thetvdb.com/api/GetSeries.php?seriesname={0}&language={1}"; private const string SeriesGetZip = "http://www.thetvdb.com/api/{0}/series/{1}/all/{2}.zip"; public async Task> GetSearchResults(SeriesInfo searchInfo, CancellationToken cancellationToken) { var seriesId = searchInfo.GetProviderId(MetadataProviders.Tvdb); - if (string.IsNullOrEmpty(seriesId)) + if (string.IsNullOrWhiteSpace(seriesId)) { - return await FindSeries(searchInfo.Name, cancellationToken).ConfigureAwait(false); + return await FindSeries(searchInfo.Name, searchInfo.MetadataLanguage, cancellationToken).ConfigureAwait(false); } var metadata = await GetMetadata(searchInfo, cancellationToken).ConfigureAwait(false); @@ -92,14 +91,14 @@ namespace MediaBrowser.Providers.TV var seriesId = itemId.GetProviderId(MetadataProviders.Tvdb); - if (string.IsNullOrEmpty(seriesId)) + if (string.IsNullOrWhiteSpace(seriesId)) { seriesId = itemId.Identities .Where(id => id.Type == MetadataProviders.Tvdb.ToString()) .Select(id => id.Id) .FirstOrDefault(); - if (string.IsNullOrEmpty(seriesId)) + if (string.IsNullOrWhiteSpace(seriesId)) { var srch = await GetSearchResults(itemId, cancellationToken).ConfigureAwait(false); @@ -114,7 +113,7 @@ namespace MediaBrowser.Providers.TV cancellationToken.ThrowIfCancellationRequested(); - if (!string.IsNullOrEmpty(seriesId)) + if (!string.IsNullOrWhiteSpace(seriesId)) { await EnsureSeriesInfo(seriesId, itemId.MetadataLanguage, cancellationToken).ConfigureAwait(false); @@ -282,29 +281,30 @@ namespace MediaBrowser.Providers.TV /// Finds the series. /// /// The name. + /// The language. /// The cancellation token. /// Task{System.String}. - private async Task> FindSeries(string name, CancellationToken cancellationToken) + private async Task> FindSeries(string name, string language, CancellationToken cancellationToken) { - var results = (await FindSeriesInternal(name, cancellationToken).ConfigureAwait(false)).ToList(); + var results = (await FindSeriesInternal(name, language, cancellationToken).ConfigureAwait(false)).ToList(); if (results.Count == 0) { var parsedName = _libraryManager.ParseName(name); var nameWithoutYear = parsedName.Name; - if (!string.IsNullOrEmpty(nameWithoutYear) && !string.Equals(nameWithoutYear, name, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(nameWithoutYear) && !string.Equals(nameWithoutYear, name, StringComparison.OrdinalIgnoreCase)) { - results = (await FindSeriesInternal(nameWithoutYear, cancellationToken).ConfigureAwait(false)).ToList(); + results = (await FindSeriesInternal(nameWithoutYear, language, cancellationToken).ConfigureAwait(false)).ToList(); } } return results; } - private async Task> FindSeriesInternal(string name, CancellationToken cancellationToken) + private async Task> FindSeriesInternal(string name, string language, CancellationToken cancellationToken) { - var url = string.Format(RootUrl + SeriesQuery, WebUtility.UrlEncode(name)); + var url = string.Format(SeriesSearchUrl, WebUtility.UrlEncode(name), language.ToLower()); var doc = new XmlDocument(); using (var results = await _httpClient.Get(new HttpRequestOptions @@ -683,7 +683,7 @@ namespace MediaBrowser.Providers.TV personInfo.Type = PersonType.Actor; - if (!string.IsNullOrEmpty(personInfo.Name)) + if (!string.IsNullOrWhiteSpace(personInfo.Name)) { series.AddPerson(personInfo); } @@ -1057,7 +1057,7 @@ namespace MediaBrowser.Providers.TV } var hasEpisodeChanged = true; - if (!string.IsNullOrEmpty(lastUpdateString) && lastTvDbUpdateTime.HasValue) + if (!string.IsNullOrWhiteSpace(lastUpdateString) && lastTvDbUpdateTime.HasValue) { long num; if (long.TryParse(lastUpdateString, NumberStyles.Any, _usCulture, out num)) @@ -1217,7 +1217,7 @@ namespace MediaBrowser.Providers.TV } } - if (!string.IsNullOrEmpty(tvdbId)) + if (!string.IsNullOrWhiteSpace(tvdbId)) { return new SeriesIdentity { Type = MetadataProviders.Tvdb.ToString(), Id = tvdbId }; }