< Summary - Jellyfin

Information
Class: Emby.Server.Implementations.Images.PlaylistImageProvider
Assembly: Emby.Server.Implementations
File(s): /srv/git/jellyfin/Emby.Server.Implementations/Images/PlaylistImageProvider.cs
Line coverage
5%
Covered lines: 2
Uncovered lines: 35
Coverable lines: 37
Total lines: 65
Line coverage: 5.4%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
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%
GetItemsWithImages(...)100%210%

File(s)

/srv/git/jellyfin/Emby.Server.Implementations/Images/PlaylistImageProvider.cs

#LineLine coverage
 1#nullable disable
 2
 3#pragma warning disable CS1591
 4
 5using System.Collections.Generic;
 6using System.Linq;
 7using MediaBrowser.Common.Configuration;
 8using MediaBrowser.Controller.Drawing;
 9using MediaBrowser.Controller.Entities;
 10using MediaBrowser.Controller.Entities.Audio;
 11using MediaBrowser.Controller.Entities.TV;
 12using MediaBrowser.Controller.Playlists;
 13using MediaBrowser.Controller.Providers;
 14using MediaBrowser.Model.Entities;
 15using MediaBrowser.Model.IO;
 16
 17namespace Emby.Server.Implementations.Images
 18{
 19    public class PlaylistImageProvider : BaseDynamicImageProvider<Playlist>
 20    {
 2221        public PlaylistImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applica
 22        {
 2223        }
 24
 25        protected override IReadOnlyList<BaseItem> GetItemsWithImages(BaseItem item)
 26        {
 027            var playlist = (Playlist)item;
 28
 029            return playlist.GetManageableItems()
 030                .Select(i =>
 031                {
 032                    var subItem = i.Item2;
 033
 034                    if (subItem is Episode episode)
 035                    {
 036                        var series = episode.Series;
 037                        if (series is not null && series.HasImage(ImageType.Primary))
 038                        {
 039                            return series;
 040                        }
 041                    }
 042
 043                    if (subItem.HasImage(ImageType.Primary))
 044                    {
 045                        return subItem;
 046                    }
 047
 048                    var parent = subItem.GetOwner() ?? subItem.GetParent();
 049
 050                    if (parent is not null && parent.HasImage(ImageType.Primary))
 051                    {
 052                        if (parent is MusicAlbum)
 053                        {
 054                            return parent;
 055                        }
 056                    }
 057
 058                    return null;
 059                })
 060                .Where(i => i is not null)
 061                .DistinctBy(x => x.Id)
 062                .ToList();
 63        }
 64    }
 65}