MetadataRefreshOptions.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. IsAutomated = copy.IsAutomated;
  25. ImageRefreshMode = copy.ImageRefreshMode;
  26. ReplaceAllImages = copy.ReplaceAllImages;
  27. RegenerateTrickplay = copy.RegenerateTrickplay;
  28. ReplaceImages = copy.ReplaceImages;
  29. SearchResult = copy.SearchResult;
  30. RemoveOldMetadata = copy.RemoveOldMetadata;
  31. if (copy.RefreshPaths is not null && copy.RefreshPaths.Length > 0)
  32. {
  33. RefreshPaths ??= Array.Empty<string>();
  34. RefreshPaths = copy.RefreshPaths.ToArray();
  35. }
  36. }
  37. /// <summary>
  38. /// Gets or sets a value indicating whether all existing data should be overwritten with new data from providers
  39. /// when paired with MetadataRefreshMode=FullRefresh.
  40. /// </summary>
  41. public bool ReplaceAllMetadata { get; set; }
  42. /// <summary>
  43. /// Gets or sets a value indicating whether all existing trickplay images should be overwritten
  44. /// when paired with MetadataRefreshMode=FullRefresh.
  45. /// </summary>
  46. public bool RegenerateTrickplay { get; set; }
  47. public MetadataRefreshMode MetadataRefreshMode { get; set; }
  48. public RemoteSearchResult SearchResult { get; set; }
  49. public string[] RefreshPaths { get; set; }
  50. public bool ForceSave { get; set; }
  51. public bool EnableRemoteContentProbe { get; set; }
  52. public bool RefreshItem(BaseItem item)
  53. {
  54. if (RefreshPaths is not null && RefreshPaths.Length > 0)
  55. {
  56. return RefreshPaths.Contains(item.Path ?? string.Empty, StringComparison.OrdinalIgnoreCase);
  57. }
  58. return true;
  59. }
  60. }
  61. }