BaseMetadataProvider.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System;
  2. using System.Threading.Tasks;
  3. using MediaBrowser.Controller.Events;
  4. using MediaBrowser.Model.Entities;
  5. namespace MediaBrowser.Controller.Providers
  6. {
  7. public abstract class BaseMetadataProvider : IDisposable
  8. {
  9. /// <summary>
  10. /// If the provider needs any startup routines, add them here
  11. /// </summary>
  12. public virtual void Init()
  13. {
  14. }
  15. /// <summary>
  16. /// Disposes anything created during Init
  17. /// </summary>
  18. public virtual void Dispose()
  19. {
  20. }
  21. public abstract bool Supports(BaseEntity item);
  22. public virtual bool RequiresInternet
  23. {
  24. get
  25. {
  26. return false;
  27. }
  28. }
  29. public abstract Task Fetch(BaseEntity item, ItemResolveEventArgs args);
  30. public abstract MetadataProviderPriority Priority { get; }
  31. }
  32. /// <summary>
  33. /// Determines when a provider should execute, relative to others
  34. /// </summary>
  35. public enum MetadataProviderPriority
  36. {
  37. // Run this provider at the beginning
  38. First = 1,
  39. // Run this provider after all first priority providers
  40. Second = 2,
  41. // Run this provider after all second priority providers
  42. Third = 3,
  43. // Run this provider last
  44. Last = 4
  45. }
  46. }