237 lines
9.7 KiB
C#
237 lines
9.7 KiB
C#
using MediaBrowser.Model.Plugins;
|
|
|
|
namespace Jellyfin.Plugin.Seasonals.Configuration;
|
|
|
|
/// <summary>
|
|
/// Plugin configuration.
|
|
/// </summary>
|
|
public class PluginConfiguration : BasePluginConfiguration
|
|
{
|
|
/// <summary>
|
|
/// Initializes a new instance of the <see cref="PluginConfiguration"/> class.
|
|
/// </summary>
|
|
public PluginConfiguration()
|
|
{
|
|
IsEnabled = true;
|
|
SelectedSeason = "none";
|
|
AutomateSeasonSelection = true;
|
|
EnableClientSideToggle = true;
|
|
|
|
Autumn = new AutumnOptions();
|
|
Snowflakes = new SnowflakesOptions();
|
|
Snowfall = new SnowfallOptions();
|
|
Snowstorm = new SnowstormOptions();
|
|
Fireworks = new FireworksOptions();
|
|
Halloween = new HalloweenOptions();
|
|
Hearts = new HeartsOptions();
|
|
Christmas = new ChristmasOptions();
|
|
Santa = new SantaOptions();
|
|
Easter = new EasterOptions();
|
|
Resurrection = new ResurrectionOptions();
|
|
Spring = new SpringOptions();
|
|
Summer = new SummerOptions();
|
|
CherryBlossom = new CherryBlossomOptions();
|
|
Carnival = new CarnivalOptions();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets a value indicating whether the plugin is enabled.
|
|
/// </summary>
|
|
public bool IsEnabled { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the selected season.
|
|
/// </summary>
|
|
public string SelectedSeason { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets a value indicating whether to automate season selection.
|
|
/// </summary>
|
|
public bool AutomateSeasonSelection { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets a value indicating whether to enable client-side toggle for users.
|
|
/// </summary>
|
|
public bool EnableClientSideToggle { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the seasonal rules configuration as JSON.
|
|
/// </summary>
|
|
public string SeasonalRules { get; set; } = "[{\"Name\":\"New Year Fireworks\",\"StartDay\":28,\"StartMonth\":12,\"EndDay\":5,\"EndMonth\":1,\"Theme\":\"fireworks\"},{\"Name\":\"Carnival\",\"StartDay\":19,\"StartMonth\":2,\"EndDay\":28,\"EndMonth\":2,\"Theme\":\"carnival\"},{\"Name\":\"Valentine's Day\",\"StartDay\":10,\"StartMonth\":2,\"EndDay\":18,\"EndMonth\":2,\"Theme\":\"hearts\"},{\"Name\":\"Spring\",\"StartDay\":1,\"StartMonth\":3,\"EndDay\":31,\"EndMonth\":5,\"Theme\":\"spring\"},{\"Name\":\"Summer\",\"StartDay\":1,\"StartMonth\":6,\"EndDay\":31,\"EndMonth\":8,\"Theme\":\"summer\"},{\"Name\":\"Santa\",\"StartDay\":22,\"StartMonth\":12,\"EndDay\":27,\"EndMonth\":12,\"Theme\":\"santa\"},{\"Name\":\"Snowflakes (December)\",\"StartDay\":1,\"StartMonth\":12,\"EndDay\":31,\"EndMonth\":12,\"Theme\":\"snowflakes\"},{\"Name\":\"Snowfall (January)\",\"StartDay\":1,\"StartMonth\":1,\"EndDay\":31,\"EndMonth\":1,\"Theme\":\"snowfall\"},{\"Name\":\"Snowfall (February)\",\"StartDay\":1,\"StartMonth\":2,\"EndDay\":29,\"EndMonth\":2,\"Theme\":\"snowfall\"},{\"Name\":\"Easter\",\"StartDay\":25,\"StartMonth\":3,\"EndDay\":25,\"EndMonth\":4,\"Theme\":\"easter\"},{\"Name\":\"Halloween\",\"StartDay\":24,\"StartMonth\":10,\"EndDay\":5,\"EndMonth\":11,\"Theme\":\"halloween\"},{\"Name\":\"Autumn\",\"StartDay\":1,\"StartMonth\":9,\"EndDay\":30,\"EndMonth\":11,\"Theme\":\"autumn\"}]";
|
|
|
|
/// <summary>
|
|
/// Gets or sets the Seasonals options.
|
|
/// </summary>
|
|
public AutumnOptions Autumn { get; set; }
|
|
public SnowflakesOptions Snowflakes { get; set; }
|
|
public SnowfallOptions Snowfall { get; set; }
|
|
public SnowstormOptions Snowstorm { get; set; }
|
|
public FireworksOptions Fireworks { get; set; }
|
|
public HalloweenOptions Halloween { get; set; }
|
|
public HeartsOptions Hearts { get; set; }
|
|
public ChristmasOptions Christmas { get; set; }
|
|
public SantaOptions Santa { get; set; }
|
|
public EasterOptions Easter { get; set; }
|
|
public ResurrectionOptions Resurrection { get; set; }
|
|
public SpringOptions Spring { get; set; }
|
|
public SummerOptions Summer { get; set; }
|
|
public CherryBlossomOptions CherryBlossom { get; set; }
|
|
public CarnivalOptions Carnival { get; set; }
|
|
}
|
|
|
|
public class AutumnOptions
|
|
{
|
|
public int LeafCount { get; set; } = 25;
|
|
public bool EnableAutumn { get; set; } = true;
|
|
public bool EnableRandomLeaves { get; set; } = true;
|
|
public bool EnableRandomLeavesMobile { get; set; } = false;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
public bool EnableRotation { get; set; } = false;
|
|
}
|
|
|
|
public class SnowflakesOptions
|
|
{
|
|
public int SnowflakeCount { get; set; } = 25;
|
|
public bool EnableSnowflakes { get; set; } = true;
|
|
public bool EnableRandomSnowflakes { get; set; } = true;
|
|
public bool EnableRandomSnowflakesMobile { get; set; } = false;
|
|
public bool EnableColoredSnowflakes { get; set; } = true;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
}
|
|
|
|
public class SnowfallOptions
|
|
{
|
|
public int SnowflakesCount { get; set; } = 500;
|
|
public int SnowflakesCountMobile { get; set; } = 250;
|
|
public double Speed { get; set; } = 3;
|
|
public bool EnableSnowfall { get; set; } = true;
|
|
}
|
|
|
|
public class SnowstormOptions
|
|
{
|
|
public int SnowflakesCount { get; set; } = 500;
|
|
public int SnowflakesCountMobile { get; set; } = 250;
|
|
public double Speed { get; set; } = 6;
|
|
public bool EnableSnowstorm { get; set; } = true;
|
|
public double HorizontalWind { get; set; } = 4;
|
|
public double VerticalVariation { get; set; } = 2;
|
|
}
|
|
|
|
public class FireworksOptions
|
|
{
|
|
public int ParticleCount { get; set; } = 50;
|
|
public int LaunchInterval { get; set; } = 3200;
|
|
public bool EnableFireworks { get; set; } = true;
|
|
public bool ScrollFireworks { get; set; } = true;
|
|
public int MinFireworks { get; set; } = 3;
|
|
public int MaxFireworks { get; set; } = 6;
|
|
}
|
|
|
|
public class HalloweenOptions
|
|
{
|
|
public int SymbolCount { get; set; } = 25;
|
|
public bool EnableHalloween { get; set; } = true;
|
|
public bool EnableRandomSymbols { get; set; } = true;
|
|
public bool EnableRandomSymbolsMobile { get; set; } = false;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
}
|
|
|
|
public class HeartsOptions
|
|
{
|
|
public int SymbolCount { get; set; } = 25;
|
|
public bool EnableHearts { get; set; } = true;
|
|
public bool EnableRandomSymbols { get; set; } = true;
|
|
public bool EnableRandomSymbolsMobile { get; set; } = false;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
}
|
|
|
|
public class ChristmasOptions
|
|
{
|
|
public int SymbolCount { get; set; } = 25;
|
|
public bool EnableChristmas { get; set; } = true;
|
|
public bool EnableRandomChristmas { get; set; } = true;
|
|
public bool EnableRandomChristmasMobile { get; set; } = false;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
}
|
|
|
|
public class SantaOptions
|
|
{
|
|
public int SnowflakesCount { get; set; } = 500;
|
|
public int SnowflakesCountMobile { get; set; } = 250;
|
|
public double SantaSpeed { get; set; } = 10;
|
|
public double SantaSpeedMobile { get; set; } = 8;
|
|
public bool EnableSanta { get; set; } = true;
|
|
public double SnowFallSpeed { get; set; } = 3;
|
|
public double MaxSantaRestTime { get; set; } = 8;
|
|
public double MinSantaRestTime { get; set; } = 3;
|
|
public double MaxPresentFallSpeed { get; set; } = 5;
|
|
public double MinPresentFallSpeed { get; set; } = 2;
|
|
}
|
|
|
|
public class EasterOptions
|
|
{
|
|
public int EggCount { get; set; } = 20;
|
|
public bool EnableEaster { get; set; } = true;
|
|
public bool EnableRandomEaster { get; set; } = true;
|
|
public bool EnableRandomEasterMobile { get; set; } = false;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
public bool EnableBunny { get; set; } = true;
|
|
public int BunnyDuration { get; set; } = 12000;
|
|
public int HopHeight { get; set; } = 12;
|
|
public int MinBunnyRestTime { get; set; } = 2000;
|
|
public int MaxBunnyRestTime { get; set; } = 5000;
|
|
}
|
|
|
|
public class ResurrectionOptions
|
|
{
|
|
public int SymbolCount { get; set; } = 12;
|
|
public bool EnableResurrection { get; set; } = true;
|
|
public bool EnableRandomSymbols { get; set; } = true;
|
|
public bool EnableRandomSymbolsMobile { get; set; } = false;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
}
|
|
|
|
public class SpringOptions
|
|
{
|
|
public int PollenCount { get; set; } = 30;
|
|
public int SunbeamCount { get; set; } = 5;
|
|
public int BirdCount { get; set; } = 3;
|
|
public int ButterflyCount { get; set; } = 4;
|
|
public int BeeCount { get; set; } = 1;
|
|
public int LadybugCount { get; set; } = 1;
|
|
public bool EnableSpring { get; set; } = true;
|
|
public bool EnableSpringSunbeams { get; set; } = true;
|
|
public bool EnableRandomSpring { get; set; } = true;
|
|
public bool EnableRandomSpringMobile { get; set; } = false;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
}
|
|
|
|
public class SummerOptions
|
|
{
|
|
public int BubbleCount { get; set; } = 20;
|
|
public int DustCount { get; set; } = 50;
|
|
public bool EnableSummer { get; set; } = true;
|
|
public bool EnableRandomSummer { get; set; } = true;
|
|
public bool EnableRandomSummerMobile { get; set; } = false;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
}
|
|
|
|
public class CarnivalOptions
|
|
{
|
|
public int ObjectCount { get; set; } = 25;
|
|
public bool EnableCarnival { get; set; } = true;
|
|
public bool EnableRandomCarnival { get; set; } = true;
|
|
public bool EnableRandomCarnivalMobile { get; set; } = false;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
public bool EnableCarnivalSway { get; set; } = true;
|
|
}
|
|
|
|
public class CherryBlossomOptions
|
|
{
|
|
public int PetalCount { get; set; } = 25;
|
|
public bool EnableCherryBlossom { get; set; } = true;
|
|
public bool EnableRandomCherryBlossom { get; set; } = true;
|
|
public bool EnableRandomCherryBlossomMobile { get; set; } = false;
|
|
public bool EnableDifferentDuration { get; set; } = true;
|
|
}
|