using System; using MediaBrowser.Model.Tasks; namespace Jellyfin.Plugin.SRFPlay.Utilities; /// /// Builds scheduled task triggers across Jellyfin versions. /// Jellyfin 10.11 replaced the string constants on with the /// TaskTriggerInfoType enum. A task whose GetDefaultTriggers throws is silently given a /// 24h fallback trigger, so this must be built against the matching Jellyfin version. /// public static class TaskTriggers { /// /// Creates a trigger that fires repeatedly at a fixed interval. /// /// The interval between runs. /// The trigger. public static TaskTriggerInfo Interval(TimeSpan interval) { return new TaskTriggerInfo { #if JELLYFIN_10_11_OR_GREATER Type = TaskTriggerInfoType.IntervalTrigger, #else Type = TaskTriggerInfo.TriggerInterval, #endif IntervalTicks = interval.Ticks }; } /// /// Creates a trigger that fires once a day at the given time. /// /// The time of day to run at. /// The trigger. public static TaskTriggerInfo Daily(TimeSpan timeOfDay) { return new TaskTriggerInfo { #if JELLYFIN_10_11_OR_GREATER Type = TaskTriggerInfoType.DailyTrigger, #else Type = TaskTriggerInfo.TriggerDaily, #endif TimeOfDayTicks = timeOfDay.Ticks }; } }