MetadataRefreshOptions.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. if (copy.RefreshPaths != null && copy.RefreshPaths.Length > 0)
  29. {
  30. RefreshPaths ??= Array.Empty<string>();
  31. RefreshPaths = copy.RefreshPaths.ToArray();
  32. }
  33. }
  34. /// <summary>
  35. /// Gets or sets a value indicating whether all existing data should be overwritten with new data from providers
  36. /// when paired with MetadataRefreshMode=FullRefresh.
  37. /// </summary>
  38. public bool ReplaceAllMetadata { get; set; }
  39. public MetadataRefreshMode MetadataRefreshMode { get; set; }
  40. public RemoteSearchResult SearchResult { get; set; }
  41. public string[] RefreshPaths { get; set; }
  42. public bool ForceSave { get; set; }
  43. public bool EnableRemoteContentProbe { get; set; }
  44. public bool RefreshItem(BaseItem item)
  45. {
  46. if (RefreshPaths != null && RefreshPaths.Length > 0)
  47. {
  48. return RefreshPaths.Contains(item.Path ?? string.Empty, StringComparison.OrdinalIgnoreCase);
  49. }
  50. return true;
  51. }
  52. }
  53. }