< Summary - Jellyfin

Information
Class: MediaBrowser.Providers.TV.EpisodeMetadataService
Assembly: MediaBrowser.Providers
File(s): /srv/git/jellyfin/MediaBrowser.Providers/TV/EpisodeMetadataService.cs
Line coverage
5%
Covered lines: 2
Uncovered lines: 34
Coverable lines: 36
Total lines: 99
Line coverage: 5.5%
Branch coverage
0%
Covered branches: 0
Total branches: 26
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
BeforeSaveInternal(...)0%110100%
MergeData(...)0%272160%

File(s)

/srv/git/jellyfin/MediaBrowser.Providers/TV/EpisodeMetadataService.cs

#LineLine coverage
 1#pragma warning disable CS1591
 2
 3using System;
 4using MediaBrowser.Controller.Configuration;
 5using MediaBrowser.Controller.Entities.TV;
 6using MediaBrowser.Controller.Library;
 7using MediaBrowser.Controller.Providers;
 8using MediaBrowser.Model.Entities;
 9using MediaBrowser.Model.IO;
 10using MediaBrowser.Providers.Manager;
 11using Microsoft.Extensions.Logging;
 12
 13namespace MediaBrowser.Providers.TV
 14{
 15    public class EpisodeMetadataService : MetadataService<Episode, EpisodeInfo>
 16    {
 17        public EpisodeMetadataService(
 18            IServerConfigurationManager serverConfigurationManager,
 19            ILogger<EpisodeMetadataService> logger,
 20            IProviderManager providerManager,
 21            IFileSystem fileSystem,
 22            ILibraryManager libraryManager)
 2223            : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager)
 24        {
 2225        }
 26
 27        /// <inheritdoc />
 28        protected override ItemUpdateType BeforeSaveInternal(Episode item, bool isFullRefresh, ItemUpdateType updateType
 29        {
 030            var updatedType = base.BeforeSaveInternal(item, isFullRefresh, updateType);
 31
 032            var seriesName = item.FindSeriesName();
 033            if (!string.Equals(item.SeriesName, seriesName, StringComparison.Ordinal))
 34            {
 035                item.SeriesName = seriesName;
 036                updatedType |= ItemUpdateType.MetadataImport;
 37            }
 38
 039            var seasonName = item.FindSeasonName();
 040            if (!string.Equals(item.SeasonName, seasonName, StringComparison.Ordinal))
 41            {
 042                item.SeasonName = seasonName;
 043                updatedType |= ItemUpdateType.MetadataImport;
 44            }
 45
 046            var seriesId = item.FindSeriesId();
 047            if (!item.SeriesId.Equals(seriesId))
 48            {
 049                item.SeriesId = seriesId;
 050                updatedType |= ItemUpdateType.MetadataImport;
 51            }
 52
 053            var seasonId = item.FindSeasonId();
 054            if (!item.SeasonId.Equals(seasonId))
 55            {
 056                item.SeasonId = seasonId;
 057                updatedType |= ItemUpdateType.MetadataImport;
 58            }
 59
 060            var seriesPresentationUniqueKey = item.FindSeriesPresentationUniqueKey();
 061            if (!string.Equals(item.SeriesPresentationUniqueKey, seriesPresentationUniqueKey, StringComparison.Ordinal))
 62            {
 063                item.SeriesPresentationUniqueKey = seriesPresentationUniqueKey;
 064                updatedType |= ItemUpdateType.MetadataImport;
 65            }
 66
 067            return updatedType;
 68        }
 69
 70        /// <inheritdoc />
 71        protected override void MergeData(MetadataResult<Episode> source, MetadataResult<Episode> target, MetadataField[
 72        {
 073            base.MergeData(source, target, lockedFields, replaceData, mergeMetadataSettings);
 74
 075            var sourceItem = source.Item;
 076            var targetItem = target.Item;
 77
 078            if (replaceData || !targetItem.AirsBeforeSeasonNumber.HasValue)
 79            {
 080                targetItem.AirsBeforeSeasonNumber = sourceItem.AirsBeforeSeasonNumber;
 81            }
 82
 083            if (replaceData || !targetItem.AirsAfterSeasonNumber.HasValue)
 84            {
 085                targetItem.AirsAfterSeasonNumber = sourceItem.AirsAfterSeasonNumber;
 86            }
 87
 088            if (replaceData || !targetItem.AirsBeforeEpisodeNumber.HasValue)
 89            {
 090                targetItem.AirsBeforeEpisodeNumber = sourceItem.AirsBeforeEpisodeNumber;
 91            }
 92
 093            if (replaceData || !targetItem.IndexNumberEnd.HasValue)
 94            {
 095                targetItem.IndexNumberEnd = sourceItem.IndexNumberEnd;
 96            }
 097        }
 98    }
 99}