< Summary - Jellyfin

Information
Class: Emby.Server.Implementations.Library.Resolvers.Movies.BoxSetResolver
Assembly: Emby.Server.Implementations
File(s): /srv/git/jellyfin/Emby.Server.Implementations/Library/Resolvers/Movies/BoxSetResolver.cs
Line coverage
11%
Covered lines: 2
Uncovered lines: 16
Coverable lines: 18
Total lines: 74
Line coverage: 11.1%
Branch coverage
25%
Covered branches: 2
Total branches: 8
Branch coverage: 25%
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
Resolve(...)25%43.06818.18%
SetInitialItemValues(...)100%210%
SetProviderIdFromPath(...)100%210%

File(s)

/srv/git/jellyfin/Emby.Server.Implementations/Library/Resolvers/Movies/BoxSetResolver.cs

#LineLine coverage
 1#nullable disable
 2
 3using System;
 4using System.IO;
 5using MediaBrowser.Controller.Entities;
 6using MediaBrowser.Controller.Entities.Movies;
 7using MediaBrowser.Controller.Library;
 8using MediaBrowser.Model.Entities;
 9
 10namespace Emby.Server.Implementations.Library.Resolvers.Movies
 11{
 12    /// <summary>
 13    /// Class BoxSetResolver.
 14    /// </summary>
 15    public class BoxSetResolver : GenericFolderResolver<BoxSet>
 16    {
 17        /// <summary>
 18        /// Resolves the specified args.
 19        /// </summary>
 20        /// <param name="args">The args.</param>
 21        /// <returns>BoxSet.</returns>
 22        protected override BoxSet Resolve(ItemResolveArgs args)
 23        {
 24            // It's a boxset if all of the following conditions are met:
 25            // Is a Directory
 26            // Contains [boxset] in the path
 327            if (args.IsDirectory)
 28            {
 029                var filename = Path.GetFileName(args.Path);
 30
 031                if (string.IsNullOrEmpty(filename))
 32                {
 033                    return null;
 34                }
 35
 036                if (filename.Contains("[boxset]", StringComparison.OrdinalIgnoreCase) || args.ContainsFileSystemEntryByN
 37                {
 038                    return new BoxSet
 039                    {
 040                        Path = args.Path,
 041                        Name = Path.GetFileName(args.Path).Replace("[boxset]", string.Empty, StringComparison.OrdinalIgn
 042                    };
 43                }
 44            }
 45
 346            return null;
 47        }
 48
 49        /// <summary>
 50        /// Sets the initial item values.
 51        /// </summary>
 52        /// <param name="item">The item.</param>
 53        /// <param name="args">The args.</param>
 54        protected override void SetInitialItemValues(BoxSet item, ItemResolveArgs args)
 55        {
 056            base.SetInitialItemValues(item, args);
 57
 058            SetProviderIdFromPath(item);
 059        }
 60
 61        /// <summary>
 62        /// Sets the provider id from path.
 63        /// </summary>
 64        /// <param name="item">The item.</param>
 65        private static void SetProviderIdFromPath(BaseItem item)
 66        {
 67            // we need to only look at the name of this actual item (not parents)
 068            var justName = Path.GetFileName(item.Path.AsSpan());
 69
 070            var id = justName.GetAttributeValue("tmdbid");
 071            item.TrySetProviderId(MetadataProvider.Tmdb, id);
 072        }
 73    }
 74}