diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-09-30 22:06:13 -0400 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-09-30 22:06:13 -0400 |
| commit | ec7e90bcb7c8dff44f582ff7248316b9f022838e (patch) | |
| tree | d1753a38c954e7f72d2d2fc8375047672897f826 | |
| parent | 835c0cb4760306570607bfb34b9d206298c684ac (diff) | |
| parent | 57fd2ed0f8e3ff8c5a27ad20b3432a23981db089 (diff) | |
Merge pull request #1205 from softworkz/AggregateRemoteSearch
Remote-Search: Allow result aggregation of multiple providers
| -rw-r--r-- | MediaBrowser.Providers/Manager/ProviderManager.cs | 14 |
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, |
