< Summary - Jellyfin

Information
Class: Emby.Server.Implementations.Library.SimilarItems.SeriesSimilarItemsProvider
Assembly: Emby.Server.Implementations
File(s): /srv/git/jellyfin/Emby.Server.Implementations/Library/SimilarItems/SeriesSimilarItemsProvider.cs
Line coverage
11%
Covered lines: 2
Uncovered lines: 15
Coverable lines: 17
Total lines: 54
Line coverage: 11.7%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 5/16/2026 - 12:15:55 AM Line coverage: 11.7% (2/17) Branch coverage: 0% (0/2) Total lines: 54 5/16/2026 - 12:15:55 AM Line coverage: 11.7% (2/17) Branch coverage: 0% (0/2) Total lines: 54

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_Name()100%210%
get_Type()100%210%
GetSimilarItemsAsync(...)0%620%

File(s)

/srv/git/jellyfin/Emby.Server.Implementations/Library/SimilarItems/SeriesSimilarItemsProvider.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using Jellyfin.Data.Enums;
 5using Jellyfin.Database.Implementations.Enums;
 6using MediaBrowser.Controller.Dto;
 7using MediaBrowser.Controller.Entities;
 8using MediaBrowser.Controller.Entities.TV;
 9using MediaBrowser.Controller.Library;
 10using MediaBrowser.Model.Configuration;
 11
 12namespace Emby.Server.Implementations.Library.SimilarItems;
 13
 14/// <summary>
 15/// Provides similar items for TV series.
 16/// </summary>
 17public class SeriesSimilarItemsProvider : ILocalSimilarItemsProvider<Series>
 18{
 19    private readonly ILibraryManager _libraryManager;
 20
 21    /// <summary>
 22    /// Initializes a new instance of the <see cref="SeriesSimilarItemsProvider"/> class.
 23    /// </summary>
 24    /// <param name="libraryManager">The library manager.</param>
 25    public SeriesSimilarItemsProvider(ILibraryManager libraryManager)
 26    {
 2127        _libraryManager = libraryManager;
 2128    }
 29
 30    /// <inheritdoc/>
 031    public string Name => "Local Genre/Tag";
 32
 33    /// <inheritdoc/>
 034    public MetadataPluginType Type => MetadataPluginType.LocalSimilarityProvider;
 35
 36    /// <inheritdoc/>
 37    public Task<IReadOnlyList<BaseItem>> GetSimilarItemsAsync(Series item, SimilarItemsQuery query, CancellationToken ca
 38    {
 039        var internalQuery = new InternalItemsQuery(query.User)
 040        {
 041            Genres = item.Genres,
 042            Tags = item.Tags,
 043            Limit = query.Limit,
 044            DtoOptions = query.DtoOptions ?? new DtoOptions(),
 045            ExcludeItemIds = [.. query.ExcludeItemIds],
 046            IncludeItemTypes = [BaseItemKind.Series],
 047            EnableGroupByMetadataKey = false,
 048            EnableTotalRecordCount = true,
 049            OrderBy = [(ItemSortBy.Random, SortOrder.Ascending)]
 050        };
 51
 052        return Task.FromResult(_libraryManager.GetItemList(internalQuery));
 53    }
 54}