Merge pull request #1731 from softworkz/MetadataMerging

Prioritize metadata merging by preferred language
This commit is contained in:
Luke
2016-09-22 17:58:18 -04:00
committed by GitHub
8 changed files with 99 additions and 18 deletions

View File

@@ -651,6 +651,8 @@ namespace MediaBrowser.Providers.Manager
{
var refreshResult = new RefreshResult();
var results = new List<MetadataResult<TItemType>>();
foreach (var provider in providers)
{
var providerName = provider.GetType().Name;
@@ -667,7 +669,7 @@ namespace MediaBrowser.Providers.Manager
if (result.HasMetadata)
{
MergeData(result, temp, new List<MetadataFields>(), false, false);
results.Add(result);
refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataDownload;
}
@@ -688,6 +690,38 @@ namespace MediaBrowser.Providers.Manager
}
}
var orderedResults = new List<MetadataResult<TItemType>>();
if (string.IsNullOrEmpty(id.MetadataLanguage))
{
orderedResults.AddRange(results);
}
else
{
// prioritize results with matching ResultLanguage
foreach (var result in results)
{
if (!string.IsNullOrEmpty(result.ResultLanguage) && result.ResultLanguage == id.MetadataLanguage && result.QueriedById)
{
orderedResults.Add(result);
}
}
// add all other results
foreach (var result in results)
{
if (!orderedResults.Contains(result))
{
orderedResults.Add(result);
}
}
}
foreach (var result in results)
{
MergeData(result, temp, new List<MetadataFields>(), false, false);
}
return refreshResult;
}