diff options
Diffstat (limited to 'MediaBrowser.Providers/TV/EpisodeMetadataService.cs')
| -rw-r--r-- | MediaBrowser.Providers/TV/EpisodeMetadataService.cs | 159 |
1 files changed, 78 insertions, 81 deletions
diff --git a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs index 9b4793ee6..b2b6cd9ab 100644 --- a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs +++ b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs @@ -1,6 +1,7 @@ using System; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities.TV; +using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; @@ -8,106 +9,102 @@ using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; using Microsoft.Extensions.Logging; -namespace MediaBrowser.Providers.TV +namespace MediaBrowser.Providers.TV; + +/// <summary> +/// Service to manage episode metadata. +/// </summary> +public class EpisodeMetadataService : MetadataService<Episode, EpisodeInfo> { /// <summary> - /// Service to manage episode metadata. + /// Initializes a new instance of the <see cref="EpisodeMetadataService"/> class. /// </summary> - public class EpisodeMetadataService : MetadataService<Episode, EpisodeInfo> + /// <param name="serverConfigurationManager">Instance of the <see cref="IServerConfigurationManager"/>.</param> + /// <param name="logger">Instance of the <see cref="ILogger"/> interface.</param> + /// <param name="providerManager">Instance of the <see cref="IProviderManager"/> interface.</param> + /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param> + /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param> + /// <param name="externalDataManager">Instance of the <see cref="IExternalDataManager"/> interface.</param> + public EpisodeMetadataService( + IServerConfigurationManager serverConfigurationManager, + ILogger<EpisodeMetadataService> logger, + IProviderManager providerManager, + IFileSystem fileSystem, + ILibraryManager libraryManager, + IExternalDataManager externalDataManager) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + { + } + + /// <inheritdoc /> + protected override ItemUpdateType BeforeSaveInternal(Episode item, bool isFullRefresh, ItemUpdateType updateType) { - /// <summary> - /// Initializes a new instance of the <see cref="EpisodeMetadataService"/> class. - /// </summary> - /// <param name="serverConfigurationManager">Instance of the <see cref="IServerConfigurationManager"/> interface.</param> - /// <param name="logger">Instance of the <see cref="ILogger{SeasonMetadataService}"/> interface.</param> - /// <param name="providerManager">Instance of the <see cref="IProviderManager"/> interface.</param> - /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param> - /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param> - public EpisodeMetadataService( - IServerConfigurationManager serverConfigurationManager, - ILogger<EpisodeMetadataService> logger, - IProviderManager providerManager, - IFileSystem fileSystem, - ILibraryManager libraryManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager) + var updatedType = base.BeforeSaveInternal(item, isFullRefresh, updateType); + + var seriesName = item.FindSeriesName(); + if (!string.Equals(item.SeriesName, seriesName, StringComparison.Ordinal)) { + item.SeriesName = seriesName; + updatedType |= ItemUpdateType.MetadataImport; } - /// <inheritdoc /> - protected override ItemUpdateType BeforeSaveInternal(Episode item, bool isFullRefresh, ItemUpdateType updateType) + var seasonName = item.FindSeasonName(); + if (!string.Equals(item.SeasonName, seasonName, StringComparison.Ordinal)) { - var updatedType = base.BeforeSaveInternal(item, isFullRefresh, updateType); - - var seriesName = item.FindSeriesName(); - if (!string.Equals(item.SeriesName, seriesName, StringComparison.Ordinal)) - { - item.SeriesName = seriesName; - updatedType |= ItemUpdateType.MetadataImport; - } - - var seasonName = item.FindSeasonName(); - if (!string.Equals(item.SeasonName, seasonName, StringComparison.Ordinal)) - { - item.SeasonName = seasonName; - updatedType |= ItemUpdateType.MetadataImport; - } - - var seriesId = item.FindSeriesId(); - if (!item.SeriesId.Equals(seriesId)) - { - item.SeriesId = seriesId; - updatedType |= ItemUpdateType.MetadataImport; - } - - var seasonId = item.FindSeasonId(); - if (!item.SeasonId.Equals(seasonId)) - { - item.SeasonId = seasonId; - updatedType |= ItemUpdateType.MetadataImport; - } + item.SeasonName = seasonName; + updatedType |= ItemUpdateType.MetadataImport; + } - var seriesPresentationUniqueKey = item.FindSeriesPresentationUniqueKey(); - if (!string.Equals(item.SeriesPresentationUniqueKey, seriesPresentationUniqueKey, StringComparison.Ordinal)) - { - item.SeriesPresentationUniqueKey = seriesPresentationUniqueKey; - updatedType |= ItemUpdateType.MetadataImport; - } + var seriesId = item.FindSeriesId(); + if (!item.SeriesId.Equals(seriesId)) + { + item.SeriesId = seriesId; + updatedType |= ItemUpdateType.MetadataImport; + } - return updatedType; + var seasonId = item.FindSeasonId(); + if (!item.SeasonId.Equals(seasonId)) + { + item.SeasonId = seasonId; + updatedType |= ItemUpdateType.MetadataImport; } - /// <inheritdoc /> - protected override void MergeData(MetadataResult<Episode> source, MetadataResult<Episode> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings) + var seriesPresentationUniqueKey = item.FindSeriesPresentationUniqueKey(); + if (!string.Equals(item.SeriesPresentationUniqueKey, seriesPresentationUniqueKey, StringComparison.Ordinal)) { - base.MergeData(source, target, lockedFields, replaceData, mergeMetadataSettings); + item.SeriesPresentationUniqueKey = seriesPresentationUniqueKey; + updatedType |= ItemUpdateType.MetadataImport; + } + + return updatedType; + } - var sourceItem = source.Item; - var targetItem = target.Item; + /// <inheritdoc /> + protected override void MergeData(MetadataResult<Episode> source, MetadataResult<Episode> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings) + { + base.MergeData(source, target, lockedFields, replaceData, mergeMetadataSettings); - if (replaceData || !targetItem.AirsBeforeSeasonNumber.HasValue) - { - targetItem.AirsBeforeSeasonNumber = sourceItem.AirsBeforeSeasonNumber; - } + var sourceItem = source.Item; + var targetItem = target.Item; - if (replaceData || !targetItem.AirsAfterSeasonNumber.HasValue) - { - targetItem.AirsAfterSeasonNumber = sourceItem.AirsAfterSeasonNumber; - } + if (replaceData || !targetItem.AirsBeforeSeasonNumber.HasValue) + { + targetItem.AirsBeforeSeasonNumber = sourceItem.AirsBeforeSeasonNumber; + } - if (replaceData || !targetItem.AirsBeforeEpisodeNumber.HasValue) - { - targetItem.AirsBeforeEpisodeNumber = sourceItem.AirsBeforeEpisodeNumber; - } + if (replaceData || !targetItem.AirsAfterSeasonNumber.HasValue) + { + targetItem.AirsAfterSeasonNumber = sourceItem.AirsAfterSeasonNumber; + } - if (replaceData || !targetItem.IndexNumberEnd.HasValue) - { - targetItem.IndexNumberEnd = sourceItem.IndexNumberEnd; - } + if (replaceData || !targetItem.AirsBeforeEpisodeNumber.HasValue) + { + targetItem.AirsBeforeEpisodeNumber = sourceItem.AirsBeforeEpisodeNumber; + } - if (replaceData || !targetItem.ParentIndexNumber.HasValue) - { - targetItem.ParentIndexNumber = sourceItem.ParentIndexNumber; - } + if (replaceData || !targetItem.IndexNumberEnd.HasValue) + { + targetItem.IndexNumberEnd = sourceItem.IndexNumberEnd; } } } |
