ImageFromMixedMediaLocationProvider.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using MediaBrowser.Controller.Configuration;
  2. using MediaBrowser.Controller.Entities;
  3. using MediaBrowser.Controller.Entities.TV;
  4. using MediaBrowser.Controller.Library;
  5. using MediaBrowser.Controller.Providers;
  6. using MediaBrowser.Model.Entities;
  7. using MediaBrowser.Model.Logging;
  8. using System.Threading;
  9. using System.Threading.Tasks;
  10. namespace MediaBrowser.Providers
  11. {
  12. class ImageFromMixedMediaLocationProvider : BaseMetadataProvider
  13. {
  14. public ImageFromMixedMediaLocationProvider(ILogManager logManager, IServerConfigurationManager configurationManager)
  15. : base(logManager, configurationManager)
  16. {
  17. }
  18. public override ItemUpdateType ItemUpdateType
  19. {
  20. get
  21. {
  22. return ItemUpdateType.ImageUpdate;
  23. }
  24. }
  25. /// <summary>
  26. /// Supportses the specified item.
  27. /// </summary>
  28. /// <param name="item">The item.</param>
  29. /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
  30. public override bool Supports(BaseItem item)
  31. {
  32. if (item.LocationType != LocationType.FileSystem || item.ResolveArgs.IsDirectory)
  33. {
  34. return false;
  35. }
  36. var video = item as Video;
  37. if (video != null && !(item is Episode))
  38. {
  39. return video.IsInMixedFolder;
  40. }
  41. var game = item as Game;
  42. if (game != null)
  43. {
  44. return game.IsInMixedFolder;
  45. }
  46. return false;
  47. }
  48. /// <summary>
  49. /// Gets the priority.
  50. /// </summary>
  51. /// <value>The priority.</value>
  52. public override MetadataProviderPriority Priority
  53. {
  54. get { return MetadataProviderPriority.First; }
  55. }
  56. /// <summary>
  57. /// Returns true or false indicating if the provider should refresh when the contents of it's directory changes
  58. /// </summary>
  59. /// <value><c>true</c> if [refresh on file system stamp change]; otherwise, <c>false</c>.</value>
  60. protected override bool RefreshOnFileSystemStampChange
  61. {
  62. get
  63. {
  64. return true;
  65. }
  66. }
  67. /// <summary>
  68. /// Gets the filestamp extensions.
  69. /// </summary>
  70. /// <value>The filestamp extensions.</value>
  71. protected override string[] FilestampExtensions
  72. {
  73. get
  74. {
  75. return BaseItem.SupportedImageExtensions;
  76. }
  77. }
  78. public override Task<bool> FetchAsync(BaseItem item, bool force, CancellationToken cancellationToken)
  79. {
  80. return TrueTaskResult;
  81. }
  82. }
  83. }