From 35acc01e03d6cef73483c2065345e4ac2a4ebdba Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 22 Sep 2016 18:04:48 -0400 Subject: [PATCH] update language normalization --- .../Manager/MetadataService.cs | 42 +++++++++++-------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 48f8ebb049..4bd2971f3e 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>(); + var preferredLanguage = NormalizeLanguage(id.MetadataLanguage); - if (string.IsNullOrEmpty(id.MetadataLanguage)) + // prioritize results with matching ResultLanguage + foreach (var result in results) { - orderedResults.AddRange(results); - } - else - { - // 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