aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/TV/SeasonMetadataService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/TV/SeasonMetadataService.cs')
-rw-r--r--MediaBrowser.Providers/TV/SeasonMetadataService.cs42
1 files changed, 20 insertions, 22 deletions
diff --git a/MediaBrowser.Providers/TV/SeasonMetadataService.cs b/MediaBrowser.Providers/TV/SeasonMetadataService.cs
index 5e3dc3c627..a9a026db9d 100644
--- a/MediaBrowser.Providers/TV/SeasonMetadataService.cs
+++ b/MediaBrowser.Providers/TV/SeasonMetadataService.cs
@@ -30,13 +30,6 @@ namespace MediaBrowser.Providers.TV
}
}
- if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
- {
- var episodes = item.GetEpisodes();
- updateType |= SavePremiereDate(item, episodes);
- updateType |= SaveIsVirtualItem(item, episodes);
- }
-
var seriesName = item.FindSeriesName();
if (!string.Equals(item.SeriesName, seriesName, StringComparison.Ordinal))
{
@@ -52,7 +45,7 @@ namespace MediaBrowser.Providers.TV
}
var seriesId = item.FindSeriesId();
- if (item.SeriesId != seriesId)
+ if (!item.SeriesId.Equals(seriesId))
{
item.SeriesId = seriesId;
updateType |= ItemUpdateType.MetadataImport;
@@ -61,32 +54,37 @@ namespace MediaBrowser.Providers.TV
return updateType;
}
- protected override void MergeData(MetadataResult<Season> source, MetadataResult<Season> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override bool EnableUpdatingPremiereDateFromChildren
{
- ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
+ get
+ {
+ return true;
+ }
}
- private ItemUpdateType SavePremiereDate(Season item, List<BaseItem> episodes)
+ protected override IList<BaseItem> GetChildrenForMetadataUpdates(Season item)
{
- var dates = episodes.Where(i => i.PremiereDate.HasValue).Select(i => i.PremiereDate.Value).ToList();
+ return item.GetEpisodes();
+ }
- DateTime? premiereDate = null;
+ protected override ItemUpdateType UpdateMetadataFromChildren(Season item, IList<BaseItem> children, bool isFullRefresh, ItemUpdateType currentUpdateType)
+ {
+ var updateType = base.UpdateMetadataFromChildren(item, children, isFullRefresh, currentUpdateType);
- if (dates.Count > 0)
+ if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
{
- premiereDate = dates.Min();
+ updateType |= SaveIsVirtualItem(item, children);
}
- if (item.PremiereDate != premiereDate)
- {
- item.PremiereDate = premiereDate;
- return ItemUpdateType.MetadataEdit;
- }
+ return updateType;
+ }
- return ItemUpdateType.None;
+ protected override void MergeData(MetadataResult<Season> source, MetadataResult<Season> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ {
+ ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
- private ItemUpdateType SaveIsVirtualItem(Season item, List<BaseItem> episodes)
+ private ItemUpdateType SaveIsVirtualItem(Season item, IList<BaseItem> episodes)
{
var isVirtualItem = item.LocationType == LocationType.Virtual && (episodes.Count == 0 || episodes.All(i => i.LocationType == LocationType.Virtual));