MetadataRefreshOptions.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using MediaBrowser.Model.Entities;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. namespace MediaBrowser.Controller.Providers
  6. {
  7. public class MetadataRefreshOptions : ImageRefreshOptions
  8. {
  9. /// <summary>
  10. /// When paired with MetadataRefreshMode=FullRefresh, all existing data will be overwritten with new data from the providers.
  11. /// </summary>
  12. public bool ReplaceAllMetadata { get; set; }
  13. public MetadataRefreshMode MetadataRefreshMode { get; set; }
  14. /// <summary>
  15. /// TODO: deprecate. Keeping this for now, for api compatibility
  16. /// </summary>
  17. [Obsolete]
  18. public bool ForceSave { get; set; }
  19. public MetadataRefreshOptions()
  20. {
  21. MetadataRefreshMode = MetadataRefreshMode.Default;
  22. }
  23. public MetadataRefreshOptions(MetadataRefreshOptions copy)
  24. {
  25. MetadataRefreshMode = copy.MetadataRefreshMode;
  26. ForceSave = copy.ForceSave;
  27. ReplaceAllMetadata = copy.ReplaceAllMetadata;
  28. ImageRefreshMode = copy.ImageRefreshMode;
  29. DirectoryService = copy.DirectoryService;
  30. ReplaceAllImages = copy.ReplaceAllImages;
  31. ReplaceImages = copy.ReplaceImages.ToList();
  32. }
  33. }
  34. public class ImageRefreshOptions
  35. {
  36. public ImageRefreshMode ImageRefreshMode { get; set; }
  37. public IDirectoryService DirectoryService { get; set; }
  38. public bool ReplaceAllImages { get; set; }
  39. public List<ImageType> ReplaceImages { get; set; }
  40. public ImageRefreshOptions()
  41. {
  42. ImageRefreshMode = ImageRefreshMode.Default;
  43. ReplaceImages = new List<ImageType>();
  44. }
  45. public bool IsReplacingImage(ImageType type)
  46. {
  47. return ImageRefreshMode == ImageRefreshMode.FullRefresh &&
  48. (ReplaceAllImages || ReplaceImages.Contains(type));
  49. }
  50. }
  51. public enum MetadataRefreshMode
  52. {
  53. /// <summary>
  54. /// The none
  55. /// </summary>
  56. None = 0,
  57. /// <summary>
  58. /// The validation only
  59. /// </summary>
  60. ValidationOnly = 1,
  61. /// <summary>
  62. /// Providers will be executed based on default rules
  63. /// </summary>
  64. Default = 2,
  65. /// <summary>
  66. /// All providers will be executed to search for new metadata
  67. /// </summary>
  68. FullRefresh = 3
  69. }
  70. public enum ImageRefreshMode
  71. {
  72. /// <summary>
  73. /// The none
  74. /// </summary>
  75. None = 0,
  76. /// <summary>
  77. /// The default
  78. /// </summary>
  79. Default = 1,
  80. /// <summary>
  81. /// Existing images will be validated
  82. /// </summary>
  83. ValidationOnly = 2,
  84. /// <summary>
  85. /// All providers will be executed to search for new metadata
  86. /// </summary>
  87. FullRefresh = 3
  88. }
  89. }