aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/ProviderUtils.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Manager/ProviderUtils.cs')
-rw-r--r--MediaBrowser.Providers/Manager/ProviderUtils.cs41
1 files changed, 19 insertions, 22 deletions
diff --git a/MediaBrowser.Providers/Manager/ProviderUtils.cs b/MediaBrowser.Providers/Manager/ProviderUtils.cs
index 20b2ac6cd..5f23cf69c 100644
--- a/MediaBrowser.Providers/Manager/ProviderUtils.cs
+++ b/MediaBrowser.Providers/Manager/ProviderUtils.cs
@@ -10,9 +10,9 @@ namespace MediaBrowser.Providers.Manager
public static class ProviderUtils
{
public static void MergeBaseItemData<T>(MetadataResult<T> sourceResult,
- MetadataResult<T> targetResult,
- List<MetadataFields> lockedFields,
- bool replaceData,
+ MetadataResult<T> targetResult,
+ List<MetadataFields> lockedFields,
+ bool replaceData,
bool mergeMetadataSettings)
where T : BaseItem
{
@@ -40,6 +40,15 @@ namespace MediaBrowser.Providers.Manager
}
}
+ if (replaceData || string.IsNullOrEmpty(target.OriginalTitle))
+ {
+ // Safeguard against incoming data having an emtpy name
+ if (!string.IsNullOrWhiteSpace(source.OriginalTitle))
+ {
+ target.OriginalTitle = source.OriginalTitle;
+ }
+ }
+
if (replaceData || !target.CommunityRating.HasValue)
{
target.CommunityRating = source.CommunityRating;
@@ -89,7 +98,7 @@ namespace MediaBrowser.Providers.Manager
{
target.CustomRating = source.CustomRating;
}
-
+
if (!lockedFields.Contains(MetadataFields.Overview))
{
if (replaceData || string.IsNullOrEmpty(target.Overview))
@@ -107,7 +116,7 @@ namespace MediaBrowser.Providers.Manager
{
if (replaceData || targetResult.People == null || targetResult.People.Count == 0)
{
- targetResult.People = sourceResult.People ?? new List<PersonInfo>();
+ targetResult.People = sourceResult.People;
}
}
@@ -142,29 +151,17 @@ namespace MediaBrowser.Providers.Manager
if (!lockedFields.Contains(MetadataFields.Tags))
{
- var sourceHasTags = source as IHasTags;
- var targetHasTags = target as IHasTags;
-
- if (sourceHasTags != null && targetHasTags != null)
+ if (replaceData || target.Tags.Count == 0)
{
- if (replaceData || targetHasTags.Tags.Count == 0)
- {
- targetHasTags.Tags = sourceHasTags.Tags;
- }
+ target.Tags = source.Tags;
}
}
if (!lockedFields.Contains(MetadataFields.Keywords))
{
- var sourceHasKeywords = source as IHasKeywords;
- var targetHasKeywords = target as IHasKeywords;
-
- if (sourceHasKeywords != null && targetHasKeywords != null)
+ if (replaceData || target.Keywords.Count == 0)
{
- if (replaceData || targetHasKeywords.Keywords.Count == 0)
- {
- targetHasKeywords.Keywords = sourceHasKeywords.Keywords;
- }
+ target.Keywords = source.Keywords;
}
}
@@ -238,7 +235,7 @@ namespace MediaBrowser.Providers.Manager
targetHasDisplayOrder.DisplayOrder = sourceHasDisplayOrder.DisplayOrder;
}
}
-
+
private static void MergeShortOverview(BaseItem source, BaseItem target, List<MetadataFields> lockedFields, bool replaceData)
{
var sourceHasShortOverview = source as IHasShortOverview;