using System.Threading.Tasks; using Kyoo.Abstractions.Models; using Kyoo.Abstractions.Models.Exceptions; namespace Kyoo.Abstractions.Controllers { /// /// An interface to identify episodes, shows and metadata based on the episode file. /// public interface IIdentifier { /// /// Identify a path and return the parsed metadata. /// /// The path of the episode file to parse. /// /// The identifier could not work for the given path. /// /// /// A tuple of models representing parsed metadata. /// If no metadata could be parsed for a type, null can be returned. /// Task<(Collection, Show, Season, Episode)> Identify(string path); /// /// Identify an external subtitle or track file from it's path and return the parsed metadata. /// /// The path of the external track file to parse. /// /// The identifier could not work for the given path. /// /// /// The metadata of the track identified. /// Task IdentifyTrack(string path); } }