aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2015-09-30 22:06:13 -0400
committerLuke <luke.pulverenti@gmail.com>2015-09-30 22:06:13 -0400
commitec7e90bcb7c8dff44f582ff7248316b9f022838e (patch)
treed1753a38c954e7f72d2d2fc8375047672897f826
parent835c0cb4760306570607bfb34b9d206298c684ac (diff)
parent57fd2ed0f8e3ff8c5a27ad20b3432a23981db089 (diff)
Merge pull request #1205 from softworkz/AggregateRemoteSearch
Remote-Search: Allow result aggregation of multiple providers
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs14
1 files changed, 11 insertions, 3 deletions
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index b2a51377c..b95f25289 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -727,6 +727,8 @@ namespace MediaBrowser.Providers.Manager
where TItemType : BaseItem, new()
where TLookupType : ItemLookupInfo
{
+ const int maxResults = 10;
+
// Give it a dummy path just so that it looks like a file system item
var dummy = new TItemType
{
@@ -755,6 +757,8 @@ namespace MediaBrowser.Providers.Manager
searchInfo.SearchInfo.MetadataCountryCode = ConfigurationManager.Configuration.MetadataCountryCode;
}
+ var resultList = new List<RemoteSearchResult>();
+
foreach (var provider in providers)
{
try
@@ -765,7 +769,12 @@ namespace MediaBrowser.Providers.Manager
if (list.Count > 0)
{
- return list.Take(10);
+ resultList.AddRange(list.Take(maxResults - resultList.Count));
+ }
+
+ if (resultList.Count >= maxResults)
+ {
+ return resultList;
}
}
catch (Exception ex)
@@ -774,8 +783,7 @@ namespace MediaBrowser.Providers.Manager
}
}
- // Nothing found
- return new List<RemoteSearchResult>();
+ return resultList;
}
private async Task<IEnumerable<RemoteSearchResult>> GetSearchResults<TLookupType>(IRemoteSearchProvider<TLookupType> provider, TLookupType searchInfo,