InternalMetadataFolderImageProvider.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System.Collections.Generic;
  2. using System.IO;
  3. using MediaBrowser.Controller.Configuration;
  4. using MediaBrowser.Controller.Entities;
  5. using MediaBrowser.Controller.Entities.Audio;
  6. using MediaBrowser.Controller.Providers;
  7. namespace MediaBrowser.LocalMetadata.Images
  8. {
  9. public class InternalMetadataFolderImageProvider : ILocalImageFileProvider, IHasOrder
  10. {
  11. private readonly IServerConfigurationManager _config;
  12. public InternalMetadataFolderImageProvider(IServerConfigurationManager config)
  13. {
  14. _config = config;
  15. }
  16. public string Name
  17. {
  18. get { return "Internal Images"; }
  19. }
  20. public bool Supports(IHasImages item)
  21. {
  22. if (!item.IsSaveLocalMetadataEnabled())
  23. {
  24. return true;
  25. }
  26. // Extracted images will be saved in here
  27. if (item is Audio)
  28. {
  29. return true;
  30. }
  31. if (item.SupportsLocalMetadata)
  32. {
  33. return false;
  34. }
  35. return true;
  36. }
  37. public int Order
  38. {
  39. get
  40. {
  41. // Make sure this is last so that all other locations are scanned first
  42. return 1000;
  43. }
  44. }
  45. public List<LocalImageInfo> GetImages(IHasImages item, IDirectoryService directoryService)
  46. {
  47. var path = _config.ApplicationPaths.GetInternalMetadataPath(item.Id);
  48. try
  49. {
  50. return new LocalImageProvider().GetImages(item, path, directoryService);
  51. }
  52. catch (DirectoryNotFoundException)
  53. {
  54. return new List<LocalImageInfo>();
  55. }
  56. }
  57. }
  58. }