aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/MetadataService.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-09-22 18:04:48 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-09-22 18:04:48 -0400
commit35acc01e03d6cef73483c2065345e4ac2a4ebdba (patch)
treec9b6b3a044de4a7d402815802dd3e142fe2a14fd /MediaBrowser.Providers/Manager/MetadataService.cs
parent2c78e43aad729b25733e7b2761492c01449dbe43 (diff)
update language normalization
Diffstat (limited to 'MediaBrowser.Providers/Manager/MetadataService.cs')
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs42
1 files changed, 25 insertions, 17 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index 48f8ebb04..4bd2971f3 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -691,29 +691,28 @@ namespace MediaBrowser.Providers.Manager
}
var orderedResults = new List<MetadataResult<TItemType>>();
+ var preferredLanguage = NormalizeLanguage(id.MetadataLanguage);
- if (string.IsNullOrEmpty(id.MetadataLanguage))
- {
- orderedResults.AddRange(results);
- }
- else
+ // prioritize results with matching ResultLanguage
+ foreach (var result in results)
{
- // prioritize results with matching ResultLanguage
- foreach (var result in results)
+ if (!result.QueriedById)
{
- if (!string.IsNullOrEmpty(result.ResultLanguage) && result.ResultLanguage == id.MetadataLanguage && result.QueriedById)
- {
- orderedResults.Add(result);
- }
+ break;
}
- // add all other results
- foreach (var result in results)
+ if (string.Equals(NormalizeLanguage(result.ResultLanguage), preferredLanguage, StringComparison.OrdinalIgnoreCase) && result.QueriedById)
{
- if (!orderedResults.Contains(result))
- {
- orderedResults.Add(result);
- }
+ orderedResults.Add(result);
+ }
+ }
+
+ // add all other results
+ foreach (var result in results)
+ {
+ if (!orderedResults.Contains(result))
+ {
+ orderedResults.Add(result);
}
}
@@ -725,6 +724,15 @@ namespace MediaBrowser.Providers.Manager
return refreshResult;
}
+ private string NormalizeLanguage(string language)
+ {
+ if (string.IsNullOrWhiteSpace(language))
+ {
+ return "en-us";
+ }
+ return language;
+ }
+
private void MergeNewData(TItemType source, TIdType lookupInfo)
{
// Copy new provider id's that may have been obtained