aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-02-20 13:27:01 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-02-20 13:27:01 -0500
commitfc98351abf629b29f4d3f277727836b33196656a (patch)
tree5b068afa0babed9b9318a96b0085caa41c86b714
parentef4acd95e6610b7e17923418d6e8d7eec3c5cbcf (diff)
add language to tvdb series search
-rw-r--r--MediaBrowser.Providers/TV/TvdbSeriesProvider.cs32
1 files changed, 16 insertions, 16 deletions
diff --git a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs
index 0f7a9f7d8..c644da0b8 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<IEnumerable<RemoteSearchResult>> 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.
/// </summary>
/// <param name="name">The name.</param>
+ /// <param name="language">The language.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{System.String}.</returns>
- private async Task<IEnumerable<RemoteSearchResult>> FindSeries(string name, CancellationToken cancellationToken)
+ private async Task<IEnumerable<RemoteSearchResult>> 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<IEnumerable<RemoteSearchResult>> FindSeriesInternal(string name, CancellationToken cancellationToken)
+ private async Task<IEnumerable<RemoteSearchResult>> 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 };
}