diff options
Diffstat (limited to 'MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs')
| -rw-r--r-- | MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs new file mode 100644 index 000000000..d51c44ad4 --- /dev/null +++ b/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs @@ -0,0 +1,55 @@ +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<T> : BaseNfoProvider<T> + 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<T> result, string path, CancellationToken cancellationToken) + { + var chapters = new List<ChapterInfo>(); + + new MovieNfoParser(_logger, _config).Fetch(result.Item, chapters, path, cancellationToken); + + result.Chapters = chapters; + } + + protected override FileSystemInfo GetXmlFile(ItemInfo info, IDirectoryService directoryService) + { + var path = GetMovieSavePath(info); + + return directoryService.GetFile(path); + } + + public static string GetMovieSavePath(ItemInfo item) + { + if (Directory.Exists(item.Path)) + { + var path = item.Path; + + return Path.Combine(path, Path.GetFileNameWithoutExtension(path) + ".nfo"); + } + + return Path.ChangeExtension(item.Path, ".nfo"); + } + } +}
\ No newline at end of file |
