< Summary - Jellyfin

Information
Class: MediaBrowser.Controller.Library.IRemoteSimilarItemsProvider<T>
Assembly: MediaBrowser.Controller
File(s): /srv/git/jellyfin/MediaBrowser.Controller/Library/IRemoteSimilarItemsProvider.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 2
Coverable lines: 2
Total lines: 62
Line coverage: 0%
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 5/16/2026 - 12:15:55 AM Line coverage: 0% (0/2) Total lines: 62

Metrics

File(s)

/srv/git/jellyfin/MediaBrowser.Controller/Library/IRemoteSimilarItemsProvider.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Threading;
 4using MediaBrowser.Controller.Entities;
 5
 6namespace MediaBrowser.Controller.Library;
 7
 8/// <summary>
 9/// Provides similar item references from remote/external sources.
 10/// Returns lightweight references with ProviderIds that the manager resolves to library items.
 11/// </summary>
 12public interface IRemoteSimilarItemsProvider : ISimilarItemsProvider
 13{
 14    /// <summary>
 15    /// Determines whether the provider can handle items of the specified type.
 16    /// </summary>
 17    /// <param name="itemType">The item type.</param>
 18    /// <returns><c>true</c> if the provider handles this item type; otherwise <c>false</c>.</returns>
 19    bool Supports(Type itemType);
 20
 21    /// <summary>
 22    /// Gets similar item references from an external source as an async stream.
 23    /// </summary>
 24    /// <param name="item">The source item to find similar items for.</param>
 25    /// <param name="query">The query options (user, limit, exclusions).</param>
 26    /// <param name="cancellationToken">Cancellation token.</param>
 27    /// <returns>An async enumerable of similar item references.</returns>
 28    IAsyncEnumerable<SimilarItemReference> GetSimilarItemsAsync(
 29        BaseItem item,
 30        SimilarItemsQuery query,
 31        CancellationToken cancellationToken);
 32}
 33
 34/// <summary>
 35/// Provides similar item references from remote/external sources for a specific item type.
 36/// Returns lightweight references with ProviderIds that the manager resolves to library items.
 37/// </summary>
 38/// <typeparam name="TItemType">The type of item this provider handles.</typeparam>
 39public interface IRemoteSimilarItemsProvider<TItemType> : IRemoteSimilarItemsProvider
 40    where TItemType : BaseItem
 41{
 42    /// <summary>
 43    /// Gets similar item references from an external source as an async stream.
 44    /// </summary>
 45    /// <param name="item">The source item to find similar items for.</param>
 46    /// <param name="query">The query options (user, limit, exclusions).</param>
 47    /// <param name="cancellationToken">Cancellation token.</param>
 48    /// <returns>An async enumerable of similar item references.</returns>
 49    IAsyncEnumerable<SimilarItemReference> GetSimilarItemsAsync(
 50        TItemType item,
 51        SimilarItemsQuery query,
 52        CancellationToken cancellationToken);
 53
 54    bool IRemoteSimilarItemsProvider.Supports(Type itemType)
 055        => typeof(TItemType).IsAssignableFrom(itemType);
 56
 57    IAsyncEnumerable<SimilarItemReference> IRemoteSimilarItemsProvider.GetSimilarItemsAsync(
 58        BaseItem item,
 59        SimilarItemsQuery query,
 60        CancellationToken cancellationToken)
 061        => GetSimilarItemsAsync((TItemType)item, query, cancellationToken);
 62}