using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Trickplay; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Tasks; using Microsoft.Extensions.Logging; namespace MediaBrowser.Providers.Trickplay; /// /// Class TrickplayImagesTask. /// public class TrickplayImagesTask : IScheduledTask { private readonly ILogger _logger; private readonly ILibraryManager _libraryManager; private readonly ILocalizationManager _localization; private readonly ITrickplayManager _trickplayManager; /// /// Initializes a new instance of the class. /// /// The logger. /// The library manager. /// The localization manager. /// The trickplay manager. public TrickplayImagesTask( ILogger logger, ILibraryManager libraryManager, ILocalizationManager localization, ITrickplayManager trickplayManager) { _libraryManager = libraryManager; _logger = logger; _localization = localization; _trickplayManager = trickplayManager; } /// public string Name => _localization.GetLocalizedString("TaskRefreshTrickplayImages"); /// public string Description => _localization.GetLocalizedString("TaskRefreshTrickplayImagesDescription"); /// public string Key => "RefreshTrickplayImages"; /// public string Category => _localization.GetLocalizedString("TasksLibraryCategory"); /// public IEnumerable GetDefaultTriggers() { return new[] { new TaskTriggerInfo { Type = TaskTriggerInfo.TriggerDaily, TimeOfDayTicks = TimeSpan.FromHours(3).Ticks } }; } /// public async Task ExecuteAsync(IProgress progress, CancellationToken cancellationToken) { var items = _libraryManager.GetItemList(new InternalItemsQuery { MediaTypes = new[] { MediaType.Video }, IsVirtualItem = false, IsFolder = false, Recursive = true }).OfType