< Summary - Jellyfin

Information
Class: MediaBrowser.XbmcMetadata.Providers.SeriesNfoSeasonProvider
Assembly: MediaBrowser.XbmcMetadata
File(s): /srv/git/jellyfin/MediaBrowser.XbmcMetadata/Providers/SeriesNfoSeasonProvider.cs
Line coverage
40%
Covered lines: 9
Uncovered lines: 13
Coverable lines: 22
Total lines: 89
Line coverage: 40.9%
Branch coverage
0%
Covered branches: 0
Total branches: 10
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%
Fetch(...)100%210%
GetXmlFile(...)0%110100%

File(s)

/srv/git/jellyfin/MediaBrowser.XbmcMetadata/Providers/SeriesNfoSeasonProvider.cs

#LineLine coverage
 1using System.IO;
 2using System.Threading;
 3using MediaBrowser.Common.Configuration;
 4using MediaBrowser.Controller.Entities.TV;
 5using MediaBrowser.Controller.Library;
 6using MediaBrowser.Controller.Providers;
 7using MediaBrowser.Model.IO;
 8using MediaBrowser.XbmcMetadata.Parsers;
 9using Microsoft.Extensions.Logging;
 10
 11namespace MediaBrowser.XbmcMetadata.Providers
 12{
 13    /// <summary>
 14    /// NFO provider for seasons based on series NFO.
 15    /// </summary>
 16    public class SeriesNfoSeasonProvider : BaseNfoProvider<Season>
 17    {
 18        private readonly ILogger<SeriesNfoSeasonProvider> _logger;
 19        private readonly IConfigurationManager _config;
 20        private readonly IProviderManager _providerManager;
 21        private readonly IUserManager _userManager;
 22        private readonly IUserDataManager _userDataManager;
 23        private readonly IDirectoryService _directoryService;
 24        private readonly ILibraryManager _libraryManager;
 25
 26        /// <summary>
 27        /// Initializes a new instance of the <see cref="SeriesNfoSeasonProvider"/> class.
 28        /// </summary>
 29        /// <param name="logger">Instance of the <see cref="ILogger{SeasonFromSeriesNfoProvider}"/> interface.</param>
 30        /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param>
 31        /// <param name="config">Instance of the <see cref="IConfigurationManager"/> interface.</param>
 32        /// <param name="providerManager">Instance of the <see cref="IProviderManager"/> interface.</param>
 33        /// <param name="userManager">Instance of the <see cref="IUserManager"/> interface.</param>
 34        /// <param name="userDataManager">Instance of the <see cref="IUserDataManager"/> interface.</param>
 35        /// <param name="directoryService">Instance of the <see cref="IDirectoryService"/> interface.</param>
 36        /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param>
 37        public SeriesNfoSeasonProvider(
 38            ILogger<SeriesNfoSeasonProvider> logger,
 39            IFileSystem fileSystem,
 40            IConfigurationManager config,
 41            IProviderManager providerManager,
 42            IUserManager userManager,
 43            IUserDataManager userDataManager,
 44            IDirectoryService directoryService,
 45            ILibraryManager libraryManager)
 2246            : base(fileSystem)
 47        {
 2248            _logger = logger;
 2249            _config = config;
 2250            _providerManager = providerManager;
 2251            _userManager = userManager;
 2252            _userDataManager = userDataManager;
 2253            _directoryService = directoryService;
 2254            _libraryManager = libraryManager;
 2255        }
 56
 57        /// <inheritdoc />
 58        protected override void Fetch(MetadataResult<Season> result, string path, CancellationToken cancellationToken)
 59        {
 060            new SeriesNfoSeasonParser(_logger, _config, _providerManager, _userManager, _userDataManager, _directoryServ
 061        }
 62
 63        /// <inheritdoc />
 64        protected override FileSystemMetadata? GetXmlFile(ItemInfo info, IDirectoryService directoryService)
 65        {
 066            var seasonPath = info.Path;
 067            if (seasonPath is not null)
 68            {
 069                var path = Path.Combine(seasonPath, "tvshow.nfo");
 070                if (Path.Exists(path))
 71                {
 072                    return directoryService.GetFile(path);
 73                }
 74            }
 75
 076            var seriesPath = _libraryManager.GetItemById(info.ParentId)?.Path;
 077            if (seriesPath is not null)
 78            {
 079                var path = Path.Combine(seriesPath, "tvshow.nfo");
 080                if (Path.Exists(path))
 81                {
 082                    return directoryService.GetFile(path);
 83                }
 84            }
 85
 086            return null;
 87        }
 88    }
 89}