diff options
Diffstat (limited to 'MediaBrowser.Providers/TV/SeasonMetadataService.cs')
| -rw-r--r-- | MediaBrowser.Providers/TV/SeasonMetadataService.cs | 42 |
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)); |
