RefreshMediaLibraryTask.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. using Emby.Server.Implementations.Library;
  6. using MediaBrowser.Controller.Library;
  7. using MediaBrowser.Model.Globalization;
  8. using MediaBrowser.Model.Tasks;
  9. namespace Emby.Server.Implementations.ScheduledTasks.Tasks;
  10. /// <summary>
  11. /// Class RefreshMediaLibraryTask.
  12. /// </summary>
  13. public class RefreshMediaLibraryTask : IScheduledTask
  14. {
  15. /// <summary>
  16. /// The _library manager.
  17. /// </summary>
  18. private readonly ILibraryManager _libraryManager;
  19. private readonly ILocalizationManager _localization;
  20. /// <summary>
  21. /// Initializes a new instance of the <see cref="RefreshMediaLibraryTask" /> class.
  22. /// </summary>
  23. /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param>
  24. /// <param name="localization">Instance of the <see cref="ILocalizationManager"/> interface.</param>
  25. public RefreshMediaLibraryTask(ILibraryManager libraryManager, ILocalizationManager localization)
  26. {
  27. _libraryManager = libraryManager;
  28. _localization = localization;
  29. }
  30. /// <inheritdoc />
  31. public string Name => _localization.GetLocalizedString("TaskRefreshLibrary");
  32. /// <inheritdoc />
  33. public string Description => _localization.GetLocalizedString("TaskRefreshLibraryDescription");
  34. /// <inheritdoc />
  35. public string Category => _localization.GetLocalizedString("TasksLibraryCategory");
  36. /// <inheritdoc />
  37. public string Key => "RefreshLibrary";
  38. /// <inheritdoc />
  39. public IEnumerable<TaskTriggerInfo> GetDefaultTriggers()
  40. {
  41. yield return new TaskTriggerInfo
  42. {
  43. Type = TaskTriggerInfoType.IntervalTrigger,
  44. IntervalTicks = TimeSpan.FromHours(12).Ticks
  45. };
  46. }
  47. /// <inheritdoc />
  48. public Task ExecuteAsync(IProgress<double> progress, CancellationToken cancellationToken)
  49. {
  50. cancellationToken.ThrowIfCancellationRequested();
  51. progress.Report(0);
  52. return ((LibraryManager)_libraryManager).ValidateMediaLibraryInternal(progress, cancellationToken);
  53. }
  54. }