VirtualItemImageValidator.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using MediaBrowser.Controller.Configuration;
  2. using MediaBrowser.Controller.Entities;
  3. using MediaBrowser.Controller.Entities.TV;
  4. using MediaBrowser.Controller.Providers;
  5. using MediaBrowser.Model.Entities;
  6. using MediaBrowser.Model.Logging;
  7. using System;
  8. using System.Threading;
  9. using System.Threading.Tasks;
  10. namespace MediaBrowser.Providers
  11. {
  12. public class VirtualItemImageValidator : BaseMetadataProvider
  13. {
  14. public VirtualItemImageValidator(ILogManager logManager, IServerConfigurationManager configurationManager)
  15. : base(logManager, configurationManager)
  16. {
  17. }
  18. public override bool Supports(BaseItem item)
  19. {
  20. var locationType = item.LocationType;
  21. // The regular provider will get virtual seasons
  22. if (item.LocationType == LocationType.Virtual)
  23. {
  24. var season = item as Season;
  25. if (season != null)
  26. {
  27. var series = season.Series;
  28. if (series != null && series.LocationType == LocationType.FileSystem)
  29. {
  30. return false;
  31. }
  32. }
  33. }
  34. return locationType == LocationType.Virtual ||
  35. locationType == LocationType.Remote;
  36. }
  37. public override Task<bool> FetchAsync(BaseItem item, bool force, BaseProviderInfo providerInfo, CancellationToken cancellationToken)
  38. {
  39. item.ValidateImages();
  40. SetLastRefreshed(item, DateTime.UtcNow, providerInfo);
  41. return TrueTaskResult;
  42. }
  43. public override MetadataProviderPriority Priority
  44. {
  45. get { return MetadataProviderPriority.First; }
  46. }
  47. }
  48. }