feat: Bump version to 1.1.0.0 and add advanced configuration options for seasonal effects
Enhanced JavaScript files for autumn, christmas, easter, fireworks, halloween, hearts, santa, snowfall, snowflakes, and snowstorm to support configuration options via window.SeasonalsPluginConfig. Added automatic theme selection based on date in README.md.
This commit is contained in:
@@ -21,12 +21,7 @@ public class SeasonalsController : ControllerBase
|
||||
[Produces("application/json")]
|
||||
public ActionResult<object> GetConfig()
|
||||
{
|
||||
var config = Plugin.Instance?.Configuration;
|
||||
return new
|
||||
{
|
||||
selectedSeason = config?.SelectedSeason ?? "none",
|
||||
automateSeasonSelection = config?.AutomateSeasonSelection ?? true
|
||||
};
|
||||
return Plugin.Instance?.Configuration ?? new object();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -14,6 +14,17 @@ public class PluginConfiguration : BasePluginConfiguration
|
||||
{
|
||||
SelectedSeason = "none";
|
||||
AutomateSeasonSelection = 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();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -25,4 +36,118 @@ public class PluginConfiguration : BasePluginConfiguration
|
||||
/// Gets or sets a value indicating whether to automate season selection.
|
||||
/// </summary>
|
||||
public bool AutomateSeasonSelection { get; set; }
|
||||
|
||||
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 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;
|
||||
}
|
||||
|
||||
@@ -33,9 +33,357 @@
|
||||
</select>
|
||||
<div class="fieldDescription">The season to display if automation is disabled.</div>
|
||||
</div>
|
||||
|
||||
<div is="emby-collapse" title="Advanced Configuration">
|
||||
<div class="collapseContent">
|
||||
<h3>Autumn</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableAutumn" name="EnableAutumn" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Autumn</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="AutumnLeafCount">Leaf Count</label>
|
||||
<input is="emby-input" type="number" id="AutumnLeafCount" name="AutumnLeafCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomLeaves" name="EnableRandomLeaves" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Leaves</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomLeavesMobile" name="EnableRandomLeavesMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Leaves on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationAutumn" name="EnableDifferentDurationAutumn" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRotation" name="EnableRotation" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Rotation</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<h3>Snowflakes</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableSnowflakes" name="EnableSnowflakes" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Snowflakes</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowflakesCount">Snowflake Count</label>
|
||||
<input is="emby-input" type="number" id="SnowflakesCount" name="SnowflakesCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomSnowflakes" name="EnableRandomSnowflakes" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Snowflakes</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomSnowflakesMobile" name="EnableRandomSnowflakesMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Snowflakes on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableColoredSnowflakes" name="EnableColoredSnowflakes" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Colored Snowflakes</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationSnowflakes" name="EnableDifferentDurationSnowflakes" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<h3>Snowfall</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableSnowfall" name="EnableSnowfall" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Snowfall</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowfallCount">Snowflake Count</label>
|
||||
<input is="emby-input" type="number" id="SnowfallCount" name="SnowfallCount" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowfallCountMobile">Snowflake Count (Mobile)</label>
|
||||
<input is="emby-input" type="number" id="SnowfallCountMobile" name="SnowfallCountMobile" />
|
||||
<div class="fieldDescription">Warning: High values may affect performance</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowfallSpeed">Speed</label>
|
||||
<input is="emby-input" type="number" id="SnowfallSpeed" name="SnowfallSpeed" step="0.1" />
|
||||
</div>
|
||||
|
||||
<h3>Snowstorm</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableSnowstorm" name="EnableSnowstorm" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Snowstorm</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowstormCount">Snowflake Count</label>
|
||||
<input is="emby-input" type="number" id="SnowstormCount" name="SnowstormCount" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowstormCountMobile">Snowflake Count (Mobile)</label>
|
||||
<input is="emby-input" type="number" id="SnowstormCountMobile" name="SnowstormCountMobile" />
|
||||
<div class="fieldDescription">Warning: High values may affect performance</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowstormSpeed">Speed</label>
|
||||
<input is="emby-input" type="number" id="SnowstormSpeed" name="SnowstormSpeed" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowstormHorizontalWind">Horizontal Wind</label>
|
||||
<input is="emby-input" type="number" id="SnowstormHorizontalWind" name="SnowstormHorizontalWind" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowstormVerticalVariation">Vertical Variation</label>
|
||||
<input is="emby-input" type="number" id="SnowstormVerticalVariation" name="SnowstormVerticalVariation" step="0.1" />
|
||||
</div>
|
||||
|
||||
<h3>Fireworks</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableFireworks" name="EnableFireworks" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Fireworks</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="FireworksParticles">Particle Count</label>
|
||||
<input is="emby-input" type="number" id="FireworksParticles" name="FireworksParticles" />
|
||||
<div class="fieldDescription">Warning: High values may affect performance</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="FireworksInterval">Launch Interval (ms)</label>
|
||||
<input is="emby-input" type="number" id="FireworksInterval" name="FireworksInterval" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="ScrollFireworks" name="ScrollFireworks" type="checkbox" is="emby-checkbox" />
|
||||
<span>Scroll Fireworks</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MinFireworks">Min Fireworks</label>
|
||||
<input is="emby-input" type="number" id="MinFireworks" name="MinFireworks" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MaxFireworks">Max Fireworks</label>
|
||||
<input is="emby-input" type="number" id="MaxFireworks" name="MaxFireworks" />
|
||||
</div>
|
||||
|
||||
<h3>Halloween</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableHalloween" name="EnableHalloween" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Halloween</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="HalloweenCount">Symbol Count</label>
|
||||
<input is="emby-input" type="number" id="HalloweenCount" name="HalloweenCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomHalloween" name="EnableRandomHalloween" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Symbols</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomHalloweenMobile" name="EnableRandomHalloweenMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Symbols on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationHalloween" name="EnableDifferentDurationHalloween" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<h3>Hearts</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableHearts" name="EnableHearts" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Hearts</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="HeartsCount">Symbol Count</label>
|
||||
<input is="emby-input" type="number" id="HeartsCount" name="HeartsCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomHearts" name="EnableRandomHearts" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Symbols</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomHeartsMobile" name="EnableRandomHeartsMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Symbols on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationHearts" name="EnableDifferentDurationHearts" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<h3>Christmas</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableChristmas" name="EnableChristmas" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Christmas</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="ChristmasCount">Symbol Count</label>
|
||||
<input is="emby-input" type="number" id="ChristmasCount" name="ChristmasCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomChristmas" name="EnableRandomChristmas" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Christmas</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomChristmasMobile" name="EnableRandomChristmasMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Christmas on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationChristmas" name="EnableDifferentDurationChristmas" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<h3>Santa</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableSanta" name="EnableSanta" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Santa</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SantaSnowflakes">Snowflakes Count</label>
|
||||
<input is="emby-input" type="number" id="SantaSnowflakes" name="SantaSnowflakes" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SantaSnowflakesMobile">Snowflakes Count (Mobile)</label>
|
||||
<input is="emby-input" type="number" id="SantaSnowflakesMobile" name="SantaSnowflakesMobile" />
|
||||
<div class="fieldDescription">Warning: High values may affect performance</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SantaSpeed">Santa Speed (seconds)</label>
|
||||
<input is="emby-input" type="number" id="SantaSpeed" name="SantaSpeed" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SantaSpeedMobile">Santa Speed Mobile (seconds)</label>
|
||||
<input is="emby-input" type="number" id="SantaSpeedMobile" name="SantaSpeedMobile" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SantaSnowFallSpeed">Snowfall Speed</label>
|
||||
<input is="emby-input" type="number" id="SantaSnowFallSpeed" name="SantaSnowFallSpeed" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MaxSantaRestTime">Max Santa Rest Time (seconds)</label>
|
||||
<input is="emby-input" type="number" id="MaxSantaRestTime" name="MaxSantaRestTime" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MinSantaRestTime">Min Santa Rest Time (seconds)</label>
|
||||
<input is="emby-input" type="number" id="MinSantaRestTime" name="MinSantaRestTime" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MaxPresentFallSpeed">Max Present Fall Speed (seconds)</label>
|
||||
<input is="emby-input" type="number" id="MaxPresentFallSpeed" name="MaxPresentFallSpeed" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MinPresentFallSpeed">Min Present Fall Speed (seconds)</label>
|
||||
<input is="emby-input" type="number" id="MinPresentFallSpeed" name="MinPresentFallSpeed" step="0.1" />
|
||||
</div>
|
||||
|
||||
<h3>Easter</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableEaster" name="EnableEaster" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Easter</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="EasterEggCount">Egg Count</label>
|
||||
<input is="emby-input" type="number" id="EasterEggCount" name="EasterEggCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomEaster" name="EnableRandomEaster" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Easter</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomEasterMobile" name="EnableRandomEasterMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Easter on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationEaster" name="EnableDifferentDurationEaster" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EasterBunny" name="EasterBunny" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Bunny</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="BunnyDuration">Bunny Duration (ms)</label>
|
||||
<input is="emby-input" type="number" id="BunnyDuration" name="BunnyDuration" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="HopHeight">Hop Height (px)</label>
|
||||
<input is="emby-input" type="number" id="HopHeight" name="HopHeight" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MinBunnyRestTime">Min Bunny Rest Time (ms)</label>
|
||||
<input is="emby-input" type="number" id="MinBunnyRestTime" name="MinBunnyRestTime" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MaxBunnyRestTime">Max Bunny Rest Time (ms)</label>
|
||||
<input is="emby-input" type="number" id="MaxBunnyRestTime" name="MaxBunnyRestTime" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button is="emby-button" type="submit" class="raised button-submit block emby-button">
|
||||
<span>Save</span>
|
||||
<span>${Save}</span>
|
||||
</button>
|
||||
<button is="emby-button" type="button" class="raised button-cancel block btnCancel" onclick="history.back();">
|
||||
<span>${ButtonCancel}</span>
|
||||
</button>
|
||||
<div class="fieldDescription" style="margin-top: 1em;">Please reload the page (F5) after saving for changes to take effect.</div>
|
||||
</div>
|
||||
@@ -53,6 +401,91 @@
|
||||
ApiClient.getPluginConfiguration(SeasonalsConfig.pluginUniqueId).then(function (config) {
|
||||
document.querySelector('#SelectedSeason').value = config.SelectedSeason;
|
||||
document.querySelector('#AutomateSeasonSelection').checked = config.AutomateSeasonSelection;
|
||||
|
||||
// Advanced Config
|
||||
// Autumn
|
||||
document.querySelector('#EnableAutumn').checked = config.Autumn.EnableAutumn;
|
||||
document.querySelector('#AutumnLeafCount').value = config.Autumn.LeafCount;
|
||||
document.querySelector('#EnableRandomLeaves').checked = config.Autumn.EnableRandomLeaves;
|
||||
document.querySelector('#EnableRandomLeavesMobile').checked = config.Autumn.EnableRandomLeavesMobile;
|
||||
document.querySelector('#EnableDifferentDurationAutumn').checked = config.Autumn.EnableDifferentDuration;
|
||||
document.querySelector('#EnableRotation').checked = config.Autumn.EnableRotation;
|
||||
|
||||
// Snowflakes
|
||||
document.querySelector('#SnowflakesCount').value = config.Snowflakes.SnowflakeCount;
|
||||
document.querySelector('#EnableSnowflakes').checked = config.Snowflakes.EnableSnowflakes;
|
||||
document.querySelector('#EnableRandomSnowflakes').checked = config.Snowflakes.EnableRandomSnowflakes;
|
||||
document.querySelector('#EnableRandomSnowflakesMobile').checked = config.Snowflakes.EnableRandomSnowflakesMobile;
|
||||
document.querySelector('#EnableColoredSnowflakes').checked = config.Snowflakes.EnableColoredSnowflakes;
|
||||
document.querySelector('#EnableDifferentDurationSnowflakes').checked = config.Snowflakes.EnableDifferentDuration;
|
||||
|
||||
// Snowfall
|
||||
document.querySelector('#EnableSnowfall').checked = config.Snowfall.EnableSnowfall;
|
||||
document.querySelector('#SnowfallCount').value = config.Snowfall.SnowflakesCount;
|
||||
document.querySelector('#SnowfallCountMobile').value = config.Snowfall.SnowflakesCountMobile;
|
||||
document.querySelector('#SnowfallSpeed').value = config.Snowfall.Speed;
|
||||
|
||||
// Snowstorm
|
||||
document.querySelector('#EnableSnowstorm').checked = config.Snowstorm.EnableSnowstorm;
|
||||
document.querySelector('#SnowstormCount').value = config.Snowstorm.SnowflakesCount;
|
||||
document.querySelector('#SnowstormCountMobile').value = config.Snowstorm.SnowflakesCountMobile;
|
||||
document.querySelector('#SnowstormSpeed').value = config.Snowstorm.Speed;
|
||||
document.querySelector('#SnowstormHorizontalWind').value = config.Snowstorm.HorizontalWind;
|
||||
document.querySelector('#SnowstormVerticalVariation').value = config.Snowstorm.VerticalVariation;
|
||||
|
||||
// Fireworks
|
||||
document.querySelector('#EnableFireworks').checked = config.Fireworks.EnableFireworks;
|
||||
document.querySelector('#FireworksParticles').value = config.Fireworks.ParticleCount;
|
||||
document.querySelector('#FireworksInterval').value = config.Fireworks.LaunchInterval;
|
||||
document.querySelector('#ScrollFireworks').checked = config.Fireworks.ScrollFireworks;
|
||||
document.querySelector('#MinFireworks').value = config.Fireworks.MinFireworks;
|
||||
document.querySelector('#MaxFireworks').value = config.Fireworks.MaxFireworks;
|
||||
|
||||
// Halloween
|
||||
document.querySelector('#EnableHalloween').checked = config.Halloween.EnableHalloween;
|
||||
document.querySelector('#HalloweenCount').value = config.Halloween.SymbolCount;
|
||||
document.querySelector('#EnableRandomHalloween').checked = config.Halloween.EnableRandomSymbols;
|
||||
document.querySelector('#EnableRandomHalloweenMobile').checked = config.Halloween.EnableRandomSymbolsMobile;
|
||||
document.querySelector('#EnableDifferentDurationHalloween').checked = config.Halloween.EnableDifferentDuration;
|
||||
|
||||
// Hearts
|
||||
document.querySelector('#EnableHearts').checked = config.Hearts.EnableHearts;
|
||||
document.querySelector('#HeartsCount').value = config.Hearts.SymbolCount;
|
||||
document.querySelector('#EnableRandomHearts').checked = config.Hearts.EnableRandomSymbols;
|
||||
document.querySelector('#EnableRandomHeartsMobile').checked = config.Hearts.EnableRandomSymbolsMobile;
|
||||
document.querySelector('#EnableDifferentDurationHearts').checked = config.Hearts.EnableDifferentDuration;
|
||||
|
||||
// Christmas
|
||||
document.querySelector('#EnableChristmas').checked = config.Christmas.EnableChristmas;
|
||||
document.querySelector('#ChristmasCount').value = config.Christmas.SymbolCount;
|
||||
document.querySelector('#EnableRandomChristmas').checked = config.Christmas.EnableRandomChristmas;
|
||||
document.querySelector('#EnableRandomChristmasMobile').checked = config.Christmas.EnableRandomChristmasMobile;
|
||||
document.querySelector('#EnableDifferentDurationChristmas').checked = config.Christmas.EnableDifferentDuration;
|
||||
|
||||
// Santa
|
||||
document.querySelector('#EnableSanta').checked = config.Santa.EnableSanta;
|
||||
document.querySelector('#SantaSnowflakes').value = config.Santa.SnowflakesCount;
|
||||
document.querySelector('#SantaSnowflakesMobile').value = config.Santa.SnowflakesCountMobile;
|
||||
document.querySelector('#SantaSpeed').value = config.Santa.SantaSpeed;
|
||||
document.querySelector('#SantaSpeedMobile').value = config.Santa.SantaSpeedMobile;
|
||||
document.querySelector('#SantaSnowFallSpeed').value = config.Santa.SnowFallSpeed;
|
||||
document.querySelector('#MaxSantaRestTime').value = config.Santa.MaxSantaRestTime;
|
||||
document.querySelector('#MinSantaRestTime').value = config.Santa.MinSantaRestTime;
|
||||
document.querySelector('#MaxPresentFallSpeed').value = config.Santa.MaxPresentFallSpeed;
|
||||
document.querySelector('#MinPresentFallSpeed').value = config.Santa.MinPresentFallSpeed;
|
||||
|
||||
// Easter
|
||||
document.querySelector('#EnableEaster').checked = config.Easter.EnableEaster;
|
||||
document.querySelector('#EasterEggCount').value = config.Easter.EggCount;
|
||||
document.querySelector('#EnableRandomEaster').checked = config.Easter.EnableRandomEaster;
|
||||
document.querySelector('#EnableRandomEasterMobile').checked = config.Easter.EnableRandomEasterMobile;
|
||||
document.querySelector('#EnableDifferentDurationEaster').checked = config.Easter.EnableDifferentDuration;
|
||||
document.querySelector('#EasterBunny').checked = config.Easter.EnableBunny;
|
||||
document.querySelector('#BunnyDuration').value = config.Easter.BunnyDuration;
|
||||
document.querySelector('#HopHeight').value = config.Easter.HopHeight;
|
||||
document.querySelector('#MinBunnyRestTime').value = config.Easter.MinBunnyRestTime;
|
||||
document.querySelector('#MaxBunnyRestTime').value = config.Easter.MaxBunnyRestTime;
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
});
|
||||
@@ -63,6 +496,91 @@
|
||||
ApiClient.getPluginConfiguration(SeasonalsConfig.pluginUniqueId).then(function (config) {
|
||||
config.SelectedSeason = document.querySelector('#SelectedSeason').value;
|
||||
config.AutomateSeasonSelection = document.querySelector('#AutomateSeasonSelection').checked;
|
||||
|
||||
// Advanced Config
|
||||
// Autumn
|
||||
config.Autumn.EnableAutumn = document.querySelector('#EnableAutumn').checked;
|
||||
config.Autumn.LeafCount = parseInt(document.querySelector('#AutumnLeafCount').value);
|
||||
config.Autumn.EnableRandomLeaves = document.querySelector('#EnableRandomLeaves').checked;
|
||||
config.Autumn.EnableRandomLeavesMobile = document.querySelector('#EnableRandomLeavesMobile').checked;
|
||||
config.Autumn.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationAutumn').checked;
|
||||
config.Autumn.EnableRotation = document.querySelector('#EnableRotation').checked;
|
||||
|
||||
// Snowflakes
|
||||
config.Snowflakes.SnowflakeCount = parseInt(document.querySelector('#SnowflakesCount').value);
|
||||
config.Snowflakes.EnableSnowflakes = document.querySelector('#EnableSnowflakes').checked;
|
||||
config.Snowflakes.EnableRandomSnowflakes = document.querySelector('#EnableRandomSnowflakes').checked;
|
||||
config.Snowflakes.EnableRandomSnowflakesMobile = document.querySelector('#EnableRandomSnowflakesMobile').checked;
|
||||
config.Snowflakes.EnableColoredSnowflakes = document.querySelector('#EnableColoredSnowflakes').checked;
|
||||
config.Snowflakes.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationSnowflakes').checked;
|
||||
|
||||
// Snowfall
|
||||
config.Snowfall.EnableSnowfall = document.querySelector('#EnableSnowfall').checked;
|
||||
config.Snowfall.SnowflakesCount = parseInt(document.querySelector('#SnowfallCount').value);
|
||||
config.Snowfall.SnowflakesCountMobile = parseInt(document.querySelector('#SnowfallCountMobile').value);
|
||||
config.Snowfall.Speed = parseFloat(document.querySelector('#SnowfallSpeed').value);
|
||||
|
||||
// Snowstorm
|
||||
config.Snowstorm.EnableSnowstorm = document.querySelector('#EnableSnowstorm').checked;
|
||||
config.Snowstorm.SnowflakesCount = parseInt(document.querySelector('#SnowstormCount').value);
|
||||
config.Snowstorm.SnowflakesCountMobile = parseInt(document.querySelector('#SnowstormCountMobile').value);
|
||||
config.Snowstorm.Speed = parseFloat(document.querySelector('#SnowstormSpeed').value);
|
||||
config.Snowstorm.HorizontalWind = parseFloat(document.querySelector('#SnowstormHorizontalWind').value);
|
||||
config.Snowstorm.VerticalVariation = parseFloat(document.querySelector('#SnowstormVerticalVariation').value);
|
||||
|
||||
// Fireworks
|
||||
config.Fireworks.EnableFireworks = document.querySelector('#EnableFireworks').checked;
|
||||
config.Fireworks.ParticleCount = parseInt(document.querySelector('#FireworksParticles').value);
|
||||
config.Fireworks.LaunchInterval = parseInt(document.querySelector('#FireworksInterval').value);
|
||||
config.Fireworks.ScrollFireworks = document.querySelector('#ScrollFireworks').checked;
|
||||
config.Fireworks.MinFireworks = parseInt(document.querySelector('#MinFireworks').value);
|
||||
config.Fireworks.MaxFireworks = parseInt(document.querySelector('#MaxFireworks').value);
|
||||
|
||||
// Halloween
|
||||
config.Halloween.EnableHalloween = document.querySelector('#EnableHalloween').checked;
|
||||
config.Halloween.SymbolCount = parseInt(document.querySelector('#HalloweenCount').value);
|
||||
config.Halloween.EnableRandomSymbols = document.querySelector('#EnableRandomHalloween').checked;
|
||||
config.Halloween.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomHalloweenMobile').checked;
|
||||
config.Halloween.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationHalloween').checked;
|
||||
|
||||
// Hearts
|
||||
config.Hearts.EnableHearts = document.querySelector('#EnableHearts').checked;
|
||||
config.Hearts.SymbolCount = parseInt(document.querySelector('#HeartsCount').value);
|
||||
config.Hearts.EnableRandomSymbols = document.querySelector('#EnableRandomHearts').checked;
|
||||
config.Hearts.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomHeartsMobile').checked;
|
||||
config.Hearts.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationHearts').checked;
|
||||
|
||||
// Christmas
|
||||
config.Christmas.EnableChristmas = document.querySelector('#EnableChristmas').checked;
|
||||
config.Christmas.SymbolCount = parseInt(document.querySelector('#ChristmasCount').value);
|
||||
config.Christmas.EnableRandomChristmas = document.querySelector('#EnableRandomChristmas').checked;
|
||||
config.Christmas.EnableRandomChristmasMobile = document.querySelector('#EnableRandomChristmasMobile').checked;
|
||||
config.Christmas.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationChristmas').checked;
|
||||
|
||||
// Santa
|
||||
config.Santa.EnableSanta = document.querySelector('#EnableSanta').checked;
|
||||
config.Santa.SnowflakesCount = parseInt(document.querySelector('#SantaSnowflakes').value);
|
||||
config.Santa.SnowflakesCountMobile = parseInt(document.querySelector('#SantaSnowflakesMobile').value);
|
||||
config.Santa.SantaSpeed = parseFloat(document.querySelector('#SantaSpeed').value);
|
||||
config.Santa.SantaSpeedMobile = parseFloat(document.querySelector('#SantaSpeedMobile').value);
|
||||
config.Santa.SnowFallSpeed = parseFloat(document.querySelector('#SantaSnowFallSpeed').value);
|
||||
config.Santa.MaxSantaRestTime = parseFloat(document.querySelector('#MaxSantaRestTime').value);
|
||||
config.Santa.MinSantaRestTime = parseFloat(document.querySelector('#MinSantaRestTime').value);
|
||||
config.Santa.MaxPresentFallSpeed = parseFloat(document.querySelector('#MaxPresentFallSpeed').value);
|
||||
config.Santa.MinPresentFallSpeed = parseFloat(document.querySelector('#MinPresentFallSpeed').value);
|
||||
|
||||
// Easter
|
||||
config.Easter.EnableEaster = document.querySelector('#EnableEaster').checked;
|
||||
config.Easter.EggCount = parseInt(document.querySelector('#EasterEggCount').value);
|
||||
config.Easter.EnableRandomEaster = document.querySelector('#EnableRandomEaster').checked;
|
||||
config.Easter.EnableRandomEasterMobile = document.querySelector('#EnableRandomEasterMobile').checked;
|
||||
config.Easter.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationEaster').checked;
|
||||
config.Easter.EnableBunny = document.querySelector('#EasterBunny').checked;
|
||||
config.Easter.BunnyDuration = parseInt(document.querySelector('#BunnyDuration').value);
|
||||
config.Easter.HopHeight = parseInt(document.querySelector('#HopHeight').value);
|
||||
config.Easter.MinBunnyRestTime = parseInt(document.querySelector('#MinBunnyRestTime').value);
|
||||
config.Easter.MaxBunnyRestTime = parseInt(document.querySelector('#MaxBunnyRestTime').value);
|
||||
|
||||
ApiClient.updatePluginConfiguration(SeasonalsConfig.pluginUniqueId, config).then(function (result) {
|
||||
Dashboard.processPluginConfigurationUpdateResult(result);
|
||||
});
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<!-- <TreatWarningsAsErrors>false</TreatWarningsAsErrors> -->
|
||||
<Title>Jellyfin Seasonals Plugin</Title>
|
||||
<Authors>CodeDevMLH</Authors>
|
||||
<Version>1.0.0.0</Version>
|
||||
<Version>1.1.0.0</Version>
|
||||
<RepositoryUrl>https://github.com/CodeDevMLH/jellyfin-plugin-seasonals</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
const leaves = true; // enable/disable leaves
|
||||
const randomLeaves = true; // enable random leaves
|
||||
const randomLeavesMobile = false; // enable random leaves on mobile devices
|
||||
const enableDiffrentDuration = true; // enable different duration for the random leaves
|
||||
const enableRotation = false; // enable/disable leaf rotation
|
||||
const leafCount = 25; // count of random extra leaves
|
||||
const config = window.SeasonalsPluginConfig?.autumn || {};
|
||||
|
||||
const leaves = config.enableAutumn !== undefined ? config.enableAutumn : true; // enable/disable leaves
|
||||
const randomLeaves = config.enableRandomLeaves !== undefined ? config.enableRandomLeaves : true; // enable random leaves
|
||||
const randomLeavesMobile = config.enableRandomLeavesMobile !== undefined ? config.enableRandomLeavesMobile : false; // enable random leaves on mobile devices (Warning: High values may affect performance)
|
||||
const enableDiffrentDuration = config.enableDifferentDuration !== undefined ? config.enableDifferentDuration : true; // enable different duration for the random leaves
|
||||
const enableRotation = config.enableRotation !== undefined ? config.enableRotation : false; // enable/disable leaf rotation
|
||||
const leafCount = config.leafCount || 25; // count of random extra leaves
|
||||
|
||||
|
||||
let msgPrinted = false; // flag to prevent multiple console messages
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
const christmas = true; // enable/disable christmas
|
||||
const randomChristmas = true; // enable random Christmas
|
||||
const randomChristmasMobile = false; // enable random Christmas on mobile devices
|
||||
const enableDiffrentDuration = true; // enable different duration for the random Christmas symbols
|
||||
const christmasCount = 25; // count of random extra christmas
|
||||
const config = window.SeasonalsPluginConfig?.christmas || {};
|
||||
|
||||
const christmas = config.enableChristmas !== undefined ? config.enableChristmas : true; // enable/disable christmas
|
||||
const randomChristmas = config.enableRandomChristmas !== undefined ? config.enableRandomChristmas : true; // enable random Christmas
|
||||
const randomChristmasMobile = config.enableRandomChristmasMobile !== undefined ? config.enableRandomChristmasMobile : false; // enable random Christmas on mobile devices (Warning: High values may affect performance)
|
||||
const enableDiffrentDuration = config.enableDifferentDuration !== undefined ? config.enableDifferentDuration : true; // enable different duration for the random Christmas symbols
|
||||
const christmasCount = config.symbolCount || 25; // count of random extra christmas
|
||||
|
||||
|
||||
let msgPrinted = false; // flag to prevent multiple console messages
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
const easter = true; // enable/disable easter
|
||||
const randomEaster = true; // enable random easter
|
||||
const randomEasterMobile = false; // enable random easter on mobile devices
|
||||
const enableDiffrentDuration = true; // enable different duration for the random easter
|
||||
const easterEggCount = 20; // count of random extra easter
|
||||
const config = window.SeasonalsPluginConfig?.easter || {};
|
||||
|
||||
const bunny = true; // enable/disable hopping bunny
|
||||
const bunnyDuration = 12000; // duration of the bunny animation in ms
|
||||
const hopHeight = 12; // height of the bunny hops in px
|
||||
const minBunnyRestTime = 2000; // minimum time the bunny rests in ms
|
||||
const maxBunnyRestTime = 5000; // maximum time the bunny rests in ms
|
||||
const easter = config.enableEaster !== undefined ? config.enableEaster : true; // enable/disable easter
|
||||
const randomEaster = config.enableRandomEaster !== undefined ? config.enableRandomEaster : true; // enable random easter
|
||||
const randomEasterMobile = config.enableRandomEasterMobile !== undefined ? config.enableRandomEasterMobile : false; // enable random easter on mobile devices (Warning: High values may affect performance)
|
||||
const enableDiffrentDuration = config.enableDifferentDuration !== undefined ? config.enableDifferentDuration : true; // enable different duration for the random easter
|
||||
const easterEggCount = config.eggCount || 20; // count of random extra easter
|
||||
|
||||
const bunny = config.enableBunny !== undefined ? config.enableBunny : true; // enable/disable hopping bunny
|
||||
const bunnyDuration = config.bunnyDuration || 12000; // duration of the bunny animation in ms
|
||||
const hopHeight = config.hopHeight || 12; // height of the bunny hops in px
|
||||
const minBunnyRestTime = config.minBunnyRestTime || 2000; // minimum time the bunny rests in ms
|
||||
const maxBunnyRestTime = config.maxBunnyRestTime || 5000; // maximum time the bunny rests in ms
|
||||
|
||||
|
||||
let msgPrinted = false; // flag to prevent multiple console messages
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
const fireworks = true; // enable/disable fireworks
|
||||
const scrollFireworks = true; // enable fireworks to scroll with page content
|
||||
const particlesPerFirework = 50; // count of particles per firework
|
||||
const minFireworks = 3; // minimum number of simultaneous fireworks
|
||||
const maxFireworks = 6; // maximum number of simultaneous fireworks
|
||||
const intervalOfFireworks = 3200; // interval for the fireworks in milliseconds
|
||||
const config = window.SeasonalsPluginConfig?.fireworks || {};
|
||||
|
||||
const fireworks = config.enableFireworks !== undefined ? config.enableFireworks : true; // enable/disable fireworks
|
||||
const scrollFireworks = config.scrollFireworks !== undefined ? config.scrollFireworks : true; // enable fireworks to scroll with page content
|
||||
const particlesPerFirework = config.particleCount || 50; // count of particles per firework (Warning: High values may affect performance)
|
||||
const minFireworks = config.minFireworks || 3; // minimum number of simultaneous fireworks
|
||||
const maxFireworks = config.maxFireworks || 6; // maximum number of simultaneous fireworks
|
||||
const intervalOfFireworks = config.launchInterval || 3200; // interval for the fireworks in milliseconds
|
||||
|
||||
// array of color palettes for the fireworks
|
||||
const colorPalettes = [
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
const halloween = true; // enable/disable halloween
|
||||
const randomSymbols = true; // enable more random symbols
|
||||
const randomSymbolsMobile = false; // enable random symbols on mobile devices
|
||||
const enableDiffrentDuration = true; // enable different duration for the random halloween symbols
|
||||
const halloweenCount = 25; // count of random extra symbols
|
||||
const config = window.SeasonalsPluginConfig?.halloween || {};
|
||||
|
||||
const halloween = config.enableHalloween !== undefined ? config.enableHalloween : true; // enable/disable halloween
|
||||
const randomSymbols = config.enableRandomSymbols !== undefined ? config.enableRandomSymbols : true; // enable more random symbols
|
||||
const randomSymbolsMobile = config.enableRandomSymbolsMobile !== undefined ? config.enableRandomSymbolsMobile : false; // enable random symbols on mobile devices (Warning: High values may affect performance)
|
||||
const enableDiffrentDuration = config.enableDifferentDuration !== undefined ? config.enableDifferentDuration : true; // enable different duration for the random halloween symbols
|
||||
const halloweenCount = config.symbolCount || 25; // count of random extra symbols
|
||||
|
||||
let msgPrinted = false; // flag to prevent multiple console messages
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
const hearts = true; // enable/disable hearts
|
||||
const randomSymbols = true; // enable more random symbols
|
||||
const randomSymbolsMobile = false; // enable random symbols on mobile devices
|
||||
const enableDiffrentDuration = true; // enable different animation duration for random symbols
|
||||
const heartsCount = 25; // count of random extra symbols
|
||||
const config = window.SeasonalsPluginConfig?.hearts || {};
|
||||
|
||||
const hearts = config.enableHearts !== undefined ? config.enableHearts : true; // enable/disable hearts
|
||||
const randomSymbols = config.enableRandomSymbols !== undefined ? config.enableRandomSymbols : true; // enable more random symbols
|
||||
const randomSymbolsMobile = config.enableRandomSymbolsMobile !== undefined ? config.enableRandomSymbolsMobile : false; // enable random symbols on mobile devices (Warning: High values may affect performance)
|
||||
const enableDiffrentDuration = config.enableDifferentDuration !== undefined ? config.enableDifferentDuration : true; // enable different animation duration for random symbols
|
||||
const heartsCount = config.symbolCount || 25; // count of random extra symbols
|
||||
|
||||
let msgPrinted = false; // flag to prevent multiple console messages
|
||||
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
const santaIsFlying = true; // enable/disable santa
|
||||
let snowflakesCount = 500; // count of snowflakes (recommended values: 300-600)
|
||||
const snowflakesCountMobile = 250; // count of snowflakes on mobile devices
|
||||
const snowFallSpeed = 3; // speed of snowfall (recommended values: 0-5)
|
||||
const santaSpeed = 10; // speed of santa in seconds (recommended values: 5000-15000)
|
||||
const santaSpeedMobile = 8; // speed of santa on mobile devices in seconds
|
||||
const maxSantaRestTime = 8; // maximum time santa rests in seconds
|
||||
const minSantaRestTime = 3; // minimum time santa rests in seconds
|
||||
const maxPresentFallSpeed = 5; // maximum speed of falling presents in seconds
|
||||
const minPresentFallSpeed = 2; // minimum speed of falling presents in seconds
|
||||
const config = window.SeasonalsPluginConfig?.santa || {};
|
||||
|
||||
const santaIsFlying = config.enableSanta !== undefined ? config.enableSanta : true; // enable/disable santa
|
||||
let snowflakesCount = config.snowflakesCount || 500; // count of snowflakes (recommended values: 300-600)
|
||||
const snowflakesCountMobile = config.snowflakesCountMobile || 250; // count of snowflakes on mobile devices (Warning: High values may affect performance)
|
||||
const snowFallSpeed = config.snowFallSpeed || 3; // speed of snowfall (recommended values: 0-5)
|
||||
const santaSpeed = config.santaSpeed || 10; // speed of santa in seconds (recommended values: 5000-15000)
|
||||
const santaSpeedMobile = config.santaSpeedMobile || 8; // speed of santa on mobile devices in seconds
|
||||
const maxSantaRestTime = config.maxSantaRestTime || 8; // maximum time santa rests in seconds
|
||||
const minSantaRestTime = config.minSantaRestTime || 3; // minimum time santa rests in seconds
|
||||
const maxPresentFallSpeed = config.maxPresentFallSpeed || 5; // maximum speed of falling presents in seconds
|
||||
const minPresentFallSpeed = config.minPresentFallSpeed || 2; // minimum speed of falling presents in seconds
|
||||
|
||||
let msgPrinted = false; // flag to prevent multiple console messages
|
||||
let isMobile = false; // flag to detect mobile devices
|
||||
|
||||
@@ -161,6 +161,7 @@ async function initializeTheme() {
|
||||
const config = await response.json();
|
||||
automateThemeSelection = config.automateSeasonSelection;
|
||||
defaultTheme = config.selectedSeason;
|
||||
window.SeasonalsPluginConfig = config;
|
||||
} else {
|
||||
console.error('Failed to fetch Seasonals config');
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
const snowfall = true; // enable/disable snowfall
|
||||
let snowflakesCount = 500; // count of snowflakes (recommended values: 300-600)
|
||||
const snowflakesCountMobile = 250; // count of snowflakes on mobile devices
|
||||
const snowFallSpeed = 3; // speed of snowfall (recommended values: 0-5)
|
||||
const config = window.SeasonalsPluginConfig?.snowfall || {};
|
||||
|
||||
const snowfall = config.enableSnowfall !== undefined ? config.enableSnowfall : true; // enable/disable snowfall
|
||||
let snowflakesCount = config.snowflakesCount || 500; // count of snowflakes (recommended values: 300-600)
|
||||
const snowflakesCountMobile = config.snowflakesCountMobile || 250; // count of snowflakes on mobile devices (Warning: High values may affect performance)
|
||||
const snowFallSpeed = config.speed || 3; // speed of snowfall (recommended values: 0-5)
|
||||
|
||||
let msgPrinted = false; // flag to prevent multiple console messages
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
const snowflakes = true; // enable/disable snowflakes
|
||||
const randomSnowflakes = true; // enable random Snowflakes
|
||||
const randomSnowflakesMobile = false; // enable random Snowflakes on mobile devices
|
||||
const enableColoredSnowflakes = true; // enable colored snowflakes on mobile devices
|
||||
const enableDiffrentDuration = true; // enable different animation duration for random symbols
|
||||
const snowflakeCount = 25; // count of random extra snowflakes
|
||||
const config = window.SeasonalsPluginConfig?.snowflakes || {};
|
||||
|
||||
const snowflakes = config.enableSnowflakes !== undefined ? config.enableSnowflakes : true; // enable/disable snowflakes
|
||||
const randomSnowflakes = config.enableRandomSnowflakes !== undefined ? config.enableRandomSnowflakes : true; // enable random Snowflakes
|
||||
const randomSnowflakesMobile = config.enableRandomSnowflakesMobile !== undefined ? config.enableRandomSnowflakesMobile : false; // enable random Snowflakes on mobile devices (Warning: High values may affect performance)
|
||||
const enableColoredSnowflakes = config.enableColoredSnowflakes !== undefined ? config.enableColoredSnowflakes : true; // enable colored snowflakes on mobile devices
|
||||
const enableDiffrentDuration = config.enableDifferentDuration !== undefined ? config.enableDifferentDuration : true; // enable different animation duration for random symbols
|
||||
const snowflakeCount = config.snowflakeCount || 25; // count of random extra snowflakes
|
||||
|
||||
|
||||
let msgPrinted = false; // flag to prevent multiple console messages
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
const snowstorm = true; // enable/disable snowstorm
|
||||
let snowflakesCount = 500; // count of snowflakes (recommended values: 300-600)
|
||||
const snowflakesCountMobile = 250; // count of snowflakes on mobile devices
|
||||
const snowFallSpeed = 6; // speed of snowfall (recommended values: 4-8)
|
||||
const horizontalWind = 4; // horizontal wind speed (recommended value: 4)
|
||||
const verticalVariation = 2; // vertical variation (recommended value: 2)
|
||||
const config = window.SeasonalsPluginConfig?.snowstorm || {};
|
||||
|
||||
const snowstorm = config.enableSnowstorm !== undefined ? config.enableSnowstorm : true; // enable/disable snowstorm
|
||||
let snowflakesCount = config.snowflakesCount || 500; // count of snowflakes (recommended values: 300-600)
|
||||
const snowflakesCountMobile = config.snowflakesCountMobile || 250; // count of snowflakes on mobile devices (Warning: High values may affect performance)
|
||||
const snowFallSpeed = config.speed || 6; // speed of snowfall (recommended values: 4-8)
|
||||
const horizontalWind = config.horizontalWind || 4; // horizontal wind speed (recommended value: 4)
|
||||
const verticalVariation = config.verticalVariation || 2; // vertical variation (recommended value: 2)
|
||||
|
||||
let msgPrinted = false; // flag to prevent multiple console messages
|
||||
|
||||
|
||||
Reference in New Issue
Block a user