using System; using System.Threading; using System.Threading.Tasks; using Jellyfin.Plugin.JRay.Models; namespace Jellyfin.Plugin.JRay.Services.Interfaces; /// /// Loads and caches scene-actor-extraction "truth" files for library items. /// public interface ITruthDataService { /// /// Gets the truth file for the given library item, if one exists. /// /// The Jellyfin library item id. /// Cancellation token. /// The parsed truth file, or null if no truth file exists for this item. Task GetTruthAsync(Guid itemId, CancellationToken cancellationToken); /// /// Removes any cached truth file for the given item, so the next /// call re-reads from the managed store or sidecar file. /// /// The Jellyfin library item id. void Invalidate(Guid itemId); /// /// Cheaply checks whether truth data exists for an item (managed upload /// or sidecar file), without loading or caching it. /// /// The Jellyfin library item id. /// The item's media file path. /// true if truth data exists for this item. bool HasTruth(Guid itemId, string itemPath); }