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
};
}
}