using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Jellyfin.Plugin.RecentlyAddedGuard.Services; using MediaBrowser.Model.Tasks; namespace Jellyfin.Plugin.RecentlyAddedGuard.Tasks; /// /// Scheduled task "Ledger synchronisieren": registers unknown items, updates live items and prunes the ledger. /// It never changes library items. /// public class SyncLedgerTask : IScheduledTask { /// /// The task key. /// public const string TaskKey = "RecentlyAddedGuardSyncLedger"; private readonly LedgerSynchronizer _synchronizer; /// /// Initializes a new instance of the class. /// /// The synchronizer. public SyncLedgerTask(LedgerSynchronizer synchronizer) { _synchronizer = synchronizer; } /// public string Name => "Ledger synchronisieren"; /// public string Key => TaskKey; /// public string Description => "Gleicht das Ledger von Recently Added Guard mit der Bibliothek ab: registriert unbekannte Filme und Episoden, " + "trägt gelöschte Items aus und bereinigt abgelaufene Einträge. Ändert keine Items."; /// public string Category => "Recently Added Guard"; /// public Task ExecuteAsync(IProgress progress, CancellationToken cancellationToken) => _synchronizer.RunAsync(progress, cancellationToken); /// public IEnumerable GetDefaultTriggers() { yield return new TaskTriggerInfo { Type = TaskTriggerInfoType.DailyTrigger, TimeOfDayTicks = TimeSpan.FromHours(3).Ticks }; } }