BaseVideoNfoProvider.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #pragma warning disable CS1591
  2. using System.Linq;
  3. using System.Threading;
  4. using MediaBrowser.Common.Configuration;
  5. using MediaBrowser.Controller.Entities;
  6. using MediaBrowser.Controller.Providers;
  7. using MediaBrowser.Model.IO;
  8. using MediaBrowser.XbmcMetadata.Parsers;
  9. using MediaBrowser.XbmcMetadata.Savers;
  10. using Microsoft.Extensions.Logging;
  11. namespace MediaBrowser.XbmcMetadata.Providers
  12. {
  13. public abstract class BaseVideoNfoProvider<T> : BaseNfoProvider<T>
  14. where T : Video, new()
  15. {
  16. private readonly ILogger<BaseVideoNfoProvider<T>> _logger;
  17. private readonly IConfigurationManager _config;
  18. private readonly IProviderManager _providerManager;
  19. public BaseVideoNfoProvider(
  20. ILogger<BaseVideoNfoProvider<T>> logger,
  21. IFileSystem fileSystem,
  22. IConfigurationManager config,
  23. IProviderManager providerManager)
  24. : base(fileSystem)
  25. {
  26. _logger = logger;
  27. _config = config;
  28. _providerManager = providerManager;
  29. }
  30. /// <inheritdoc />
  31. protected override void Fetch(MetadataResult<T> result, string path, CancellationToken cancellationToken)
  32. {
  33. var tmpItem = new MetadataResult<Video>
  34. {
  35. Item = result.Item
  36. };
  37. new MovieNfoParser(_logger, _config, _providerManager).Fetch(tmpItem, path, cancellationToken);
  38. result.Item = (T)tmpItem.Item;
  39. result.People = tmpItem.People;
  40. if (tmpItem.UserDataList != null)
  41. {
  42. result.UserDataList = tmpItem.UserDataList;
  43. }
  44. }
  45. /// <inheritdoc />
  46. protected override FileSystemMetadata GetXmlFile(ItemInfo info, IDirectoryService directoryService)
  47. {
  48. return MovieNfoSaver.GetMovieSavePaths(info)
  49. .Select(directoryService.GetFile)
  50. .FirstOrDefault(i => i != null);
  51. }
  52. }
  53. }