< Summary - Jellyfin

Information
Class: MediaBrowser.Providers.Playlists.PlaylistMetadataService
Assembly: MediaBrowser.Providers
File(s): /srv/git/jellyfin/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs
Line coverage
11%
Covered lines: 2
Uncovered lines: 16
Coverable lines: 18
Total lines: 74
Line coverage: 11.1%
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%
get_EnableUpdatingGenresFromChildren()100%210%
get_EnableUpdatingOfficialRatingFromChildren()100%210%
get_EnableUpdatingStudiosFromChildren()100%210%
GetChildrenForMetadataUpdates(...)100%210%
MergeData(...)0%110100%

File(s)

/srv/git/jellyfin/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs

#LineLine coverage
 1#pragma warning disable CS1591
 2
 3using System.Collections.Generic;
 4using System.Linq;
 5using MediaBrowser.Controller.Configuration;
 6using MediaBrowser.Controller.Entities;
 7using MediaBrowser.Controller.Library;
 8using MediaBrowser.Controller.Playlists;
 9using MediaBrowser.Controller.Providers;
 10using MediaBrowser.Model.Entities;
 11using MediaBrowser.Model.IO;
 12using MediaBrowser.Providers.Manager;
 13using Microsoft.Extensions.Logging;
 14
 15namespace MediaBrowser.Providers.Playlists
 16{
 17    public class PlaylistMetadataService : MetadataService<Playlist, ItemLookupInfo>
 18    {
 19        public PlaylistMetadataService(
 20            IServerConfigurationManager serverConfigurationManager,
 21            ILogger<PlaylistMetadataService> logger,
 22            IProviderManager providerManager,
 23            IFileSystem fileSystem,
 24            ILibraryManager libraryManager)
 2225            : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager)
 26        {
 2227        }
 28
 29        /// <inheritdoc />
 030        protected override bool EnableUpdatingGenresFromChildren => true;
 31
 32        /// <inheritdoc />
 033        protected override bool EnableUpdatingOfficialRatingFromChildren => true;
 34
 35        /// <inheritdoc />
 036        protected override bool EnableUpdatingStudiosFromChildren => true;
 37
 38        /// <inheritdoc />
 39        protected override IList<BaseItem> GetChildrenForMetadataUpdates(Playlist item)
 040            => item.GetLinkedChildren();
 41
 42        /// <inheritdoc />
 43        protected override void MergeData(MetadataResult<Playlist> source, MetadataResult<Playlist> target, MetadataFiel
 44        {
 045            base.MergeData(source, target, lockedFields, replaceData, mergeMetadataSettings);
 46
 047            var sourceItem = source.Item;
 048            var targetItem = target.Item;
 49
 050            if (mergeMetadataSettings)
 51            {
 052                targetItem.PlaylistMediaType = sourceItem.PlaylistMediaType;
 53
 054                if (replaceData || targetItem.LinkedChildren.Length == 0)
 55                {
 056                    targetItem.LinkedChildren = sourceItem.LinkedChildren;
 57                }
 58                else
 59                {
 060                    targetItem.LinkedChildren = sourceItem.LinkedChildren.Concat(targetItem.LinkedChildren).Distinct().T
 61                }
 62
 063                if (replaceData || targetItem.Shares.Count == 0)
 64                {
 065                    targetItem.Shares = sourceItem.Shares;
 66                }
 67                else
 68                {
 069                    targetItem.Shares = sourceItem.Shares.Concat(targetItem.Shares).DistinctBy(s => s.UserId).ToArray();
 70                }
 71            }
 072        }
 73    }
 74}