don't use search query when only a single result is needed

pull/702/head
Luke Pulverenti 9 years ago
parent b9118de8c3
commit 8e0ded8d33

@ -57,7 +57,12 @@ namespace MediaBrowser.Providers.Omdb
return GetSearchResults(searchInfo, "movie", cancellationToken); return GetSearchResults(searchInfo, "movie", cancellationToken);
} }
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(ItemLookupInfo searchInfo, string type, CancellationToken cancellationToken) public Task<IEnumerable<RemoteSearchResult>> GetSearchResults(ItemLookupInfo searchInfo, string type, CancellationToken cancellationToken)
{
return GetSearchResultsInternal(searchInfo, type, true, cancellationToken);
}
private async Task<IEnumerable<RemoteSearchResult>> GetSearchResultsInternal(ItemLookupInfo searchInfo, string type, bool enableMultipleResults, CancellationToken cancellationToken)
{ {
bool isSearch = false; bool isSearch = false;
@ -86,7 +91,14 @@ namespace MediaBrowser.Providers.Omdb
} }
// &s means search and returns a list of results as opposed to t // &s means search and returns a list of results as opposed to t
url += "&s=" + WebUtility.UrlEncode(name); if (enableMultipleResults)
{
url += "&s=" + WebUtility.UrlEncode(name);
}
else
{
url += "&t=" + WebUtility.UrlEncode(name);
}
url += "&type=" + type; url += "&type=" + type;
isSearch = true; isSearch = true;
} }
@ -239,14 +251,14 @@ namespace MediaBrowser.Providers.Omdb
private async Task<string> GetMovieImdbId(ItemLookupInfo info, CancellationToken cancellationToken) private async Task<string> GetMovieImdbId(ItemLookupInfo info, CancellationToken cancellationToken)
{ {
var results = await GetSearchResults(info, "movie", cancellationToken).ConfigureAwait(false); var results = await GetSearchResultsInternal(info, "movie", false, cancellationToken).ConfigureAwait(false);
var first = results.FirstOrDefault(); var first = results.FirstOrDefault();
return first == null ? null : first.GetProviderId(MetadataProviders.Imdb); return first == null ? null : first.GetProviderId(MetadataProviders.Imdb);
} }
private async Task<string> GetSeriesImdbId(SeriesInfo info, CancellationToken cancellationToken) private async Task<string> GetSeriesImdbId(SeriesInfo info, CancellationToken cancellationToken)
{ {
var results = await GetSearchResults(info, cancellationToken).ConfigureAwait(false); var results = await GetSearchResultsInternal(info, "series", false, cancellationToken).ConfigureAwait(false);
var first = results.FirstOrDefault(); var first = results.FirstOrDefault();
return first == null ? null : first.GetProviderId(MetadataProviders.Imdb); return first == null ? null : first.GetProviderId(MetadataProviders.Imdb);
} }

Loading…
Cancel
Save