// Kyoo - A portable and vast media library solution. // Copyright (c) Kyoo. // // See AUTHORS.md and LICENSE file in the project root for full license information. // // Kyoo is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // Kyoo is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Kyoo. If not, see . 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); } }