ImagesByNameImageProvider.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System.Collections.Generic;
  2. using System.IO;
  3. using MediaBrowser.Common.IO;
  4. using MediaBrowser.Controller.Configuration;
  5. using MediaBrowser.Controller.Entities;
  6. using MediaBrowser.Controller.Providers;
  7. namespace MediaBrowser.LocalMetadata.Images
  8. {
  9. public class ImagesByNameImageProvider : ILocalImageFileProvider, IHasOrder
  10. {
  11. private readonly IFileSystem _fileSystem;
  12. private readonly IServerConfigurationManager _config;
  13. public ImagesByNameImageProvider(IFileSystem fileSystem, IServerConfigurationManager config)
  14. {
  15. _fileSystem = fileSystem;
  16. _config = config;
  17. }
  18. public string Name
  19. {
  20. get { return "Images By Name"; }
  21. }
  22. public bool Supports(IHasImages item)
  23. {
  24. return item is CollectionFolder;
  25. }
  26. public int Order
  27. {
  28. get
  29. {
  30. // Run after LocalImageProvider, and after CollectionFolderImageProvider
  31. return 2;
  32. }
  33. }
  34. public List<LocalImageInfo> GetImages(IHasImages item, IDirectoryService directoryService)
  35. {
  36. var name = _fileSystem.GetValidFilename(item.Name);
  37. var path = Path.Combine(_config.ApplicationPaths.GeneralPath, name);
  38. try
  39. {
  40. return new LocalImageProvider(_fileSystem).GetImages(item, path, false, directoryService);
  41. }
  42. catch (DirectoryNotFoundException)
  43. {
  44. return new List<LocalImageInfo>();
  45. }
  46. }
  47. }
  48. }