MetadataRefreshOptions.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #nullable disable
  2. #pragma warning disable CA1819, CS1591
  3. using System;
  4. using System.Linq;
  5. using Jellyfin.Extensions;
  6. using MediaBrowser.Controller.Entities;
  7. using MediaBrowser.Model.Providers;
  8. namespace MediaBrowser.Controller.Providers
  9. {
  10. public class MetadataRefreshOptions : ImageRefreshOptions
  11. {
  12. public MetadataRefreshOptions(IDirectoryService directoryService)
  13. : base(directoryService)
  14. {
  15. MetadataRefreshMode = MetadataRefreshMode.Default;
  16. }
  17. public MetadataRefreshOptions(MetadataRefreshOptions copy)
  18. : base(copy.DirectoryService)
  19. {
  20. MetadataRefreshMode = copy.MetadataRefreshMode;
  21. ForceSave = copy.ForceSave;
  22. ReplaceAllMetadata = copy.ReplaceAllMetadata;
  23. EnableRemoteContentProbe = copy.EnableRemoteContentProbe;
  24. ImageRefreshMode = copy.ImageRefreshMode;
  25. ReplaceAllImages = copy.ReplaceAllImages;
  26. ReplaceImages = copy.ReplaceImages;
  27. SearchResult = copy.SearchResult;
  28. RemoveOldMetadata = copy.RemoveOldMetadata;
  29. if (copy.RefreshPaths != null && copy.RefreshPaths.Length > 0)
  30. {
  31. RefreshPaths ??= Array.Empty<string>();
  32. RefreshPaths = copy.RefreshPaths.ToArray();
  33. }
  34. }
  35. /// <summary>
  36. /// Gets or sets a value indicating whether all existing data should be overwritten with new data from providers
  37. /// when paired with MetadataRefreshMode=FullRefresh.
  38. /// </summary>
  39. public bool ReplaceAllMetadata { get; set; }
  40. public MetadataRefreshMode MetadataRefreshMode { get; set; }
  41. public RemoteSearchResult SearchResult { get; set; }
  42. public string[] RefreshPaths { get; set; }
  43. public bool ForceSave { get; set; }
  44. public bool EnableRemoteContentProbe { get; set; }
  45. public bool RefreshItem(BaseItem item)
  46. {
  47. if (RefreshPaths != null && RefreshPaths.Length > 0)
  48. {
  49. return RefreshPaths.Contains(item.Path ?? string.Empty, StringComparison.OrdinalIgnoreCase);
  50. }
  51. return true;
  52. }
  53. }
  54. }