using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Providers; using MediaBrowser.LocalMetadata.Parsers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using System.Collections.Generic; using System.IO; using System.Threading; using MediaBrowser.Common.IO; using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.Xml; namespace MediaBrowser.LocalMetadata.Providers { public class EpisodeXmlProvider : BaseXmlProvider { private readonly ILogger _logger; private readonly IProviderManager _providerManager; private readonly IXmlReaderSettingsFactory _xmlSettings; public EpisodeXmlProvider(IFileSystem fileSystem, ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlSettings) : base(fileSystem) { _logger = logger; _providerManager = providerManager; _xmlSettings = xmlSettings; } protected override void Fetch(MetadataResult result, string path, CancellationToken cancellationToken) { var images = new List(); var chapters = new List(); new EpisodeXmlParser(_logger, FileSystem, _providerManager, _xmlSettings).Fetch(result, images, path, cancellationToken); result.Images = images; } protected override FileSystemMetadata GetXmlFile(ItemInfo info, IDirectoryService directoryService) { var metadataPath = Path.GetDirectoryName(info.Path); metadataPath = Path.Combine(metadataPath, "metadata"); var metadataFile = Path.Combine(metadataPath, Path.ChangeExtension(Path.GetFileName(info.Path), ".xml")); return directoryService.GetFile(metadataFile); } } }