using MediaBrowser.Common.Configuration; using MediaBrowser.Common.IO; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using MediaBrowser.XbmcMetadata.Parsers; using System.Collections.Generic; using System.IO; using System.Threading; namespace MediaBrowser.XbmcMetadata.Providers { public class BaseVideoNfoProvider : BaseNfoProvider where T : Video, new () { private readonly ILogger _logger; private readonly IConfigurationManager _config; public BaseVideoNfoProvider(IFileSystem fileSystem, ILogger logger, IConfigurationManager config) : base(fileSystem) { _logger = logger; _config = config; } protected override void Fetch(LocalMetadataResult result, string path, CancellationToken cancellationToken) { var chapters = new List(); new MovieNfoParser(_logger, _config).Fetch(result.Item, result.UserDataLIst, chapters, path, cancellationToken); result.Chapters = chapters; } protected override FileSystemInfo GetXmlFile(ItemInfo info, IDirectoryService directoryService) { var path = GetMovieSavePath(info, FileSystem); return directoryService.GetFile(path); } public static string GetMovieSavePath(ItemInfo item, IFileSystem fileSystem) { if (Directory.Exists(item.Path)) { var path = item.Path; return Path.Combine(path, Path.GetFileName(path) + ".nfo"); } return Path.ChangeExtension(item.Path, ".nfo"); } } }