From 19e66c79c0b4b9b3ba4544990c8911197b1b15aa Mon Sep 17 00:00:00 2001
From: CodeDevMLH <145071728+CodeDevMLH@users.noreply.github.com>
Date: Mon, 15 Dec 2025 16:32:18 +0100
Subject: [PATCH] add some more description
---
README.md | 223 +++++++++++++++++++++++++++++++++++++++++++++--
RELEASE_GUIDE.md | 4 +-
logo.png | Bin 0 -> 4561557 bytes
3 files changed, 218 insertions(+), 9 deletions(-)
create mode 100644 logo.png
diff --git a/README.md b/README.md
index e69633b..2040d8f 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,222 @@
-# Jellyfin Seasonals Plugin
+# Jellyfin Seasonals Plugin
-This plugin adds seasonal effects (snow, leaves, etc.) to the Jellyfin web interface.
+Jellyfin Seasonals is a plugin that adds seasonal themes to your Jellyfin web interface. Depending on the configuration, it automatically selects a theme based on the current date or allows you to manually set a default theme.
+
+This plugin is based on my manual mod (see the `manual` branch), which builds up on the awesome work of [BobHasNoSoul-jellyfin-mods](https://github.com/BobHasNoSoul/jellyfin-mods).
+
+---
+
+## Table of Contents
+- [Jellyfin Seasonals Plugin](#jellyfin-seasonals-plugin)
+ - [Table of Contents](#table-of-contents)
+ - [Features](#features)
+ - [Overview](#overview)
+ - [Installation](#installation)
+ - [Usage](#usage)
+ - [Build Process](#build-process)
+ - [Contributing](#contributing)
+ - [Legacy Manual Installation](#legacy-manual-installation)
+ - [Installation](#installation-1)
+ - [Theme Settings](#theme-settings)
+ - [Additional Directory: Separate Single Seasonals](#additional-directory-separate-single-seasonals)
+ - [Troubleshooting](#troubleshooting)
+
+---
+
+## Features
+
+- **Automatic Theme Selection**: Dynamically updates the theme based on the date (e.g., snowflakes in December, fireworks for new year's eve).
+- **Easy Integration**: No manual file editing required. The plugin injects everything automatically.
+- **Configuration UI**: Configure settings directly in the Jellyfin Dashboard (very basic for now, needs some work in the future).
+
+## Overview
+
+**Easter**
+
+
+**Autumn**
+
+
+**Santa**
+
+
+**Christmas**
+
+
+**Fireworks**
+
+
+**Halloween**
+
+
+**Hearts**
+
+
+**Snowfall**
+
+
+**Snowflakes**
+
+
+**Snowstorm**
+
## Installation
-1. Build the plugin and install it in Jellyfin.
-2. Restart Jellyfin.
-3. The plugin will automatically attempt to inject the necessary script into your `index.html`.
+To install this plugin, you will first need to add the repository in Jellyfin.
-## Configuration
+1. Open your Jellyfin Dashboard.
+2. Navigate to **Plugins** > **Repositories**.
+3. Click the **+** sign to add a new repository.
+4. Enter a name (e.g., "Seasonals") and paste the following URL into the 'Repository URL' field:
+ ```bash
+ https://raw.githubusercontent.com/CodeDevMLH/jellyfin-plugin-seasonals/main/manifest.json
+ ```
+5. Click **Save**.
+6. Go to the **Catalog** tab at the top.
+7. Under **General**, find the **Seasonals** plugin.
+8. Click on it and select **Install**.
+9. **Restart your Jellyfin server.**
+10. **You may need to refresh your browser page** (F5 or Ctrl+R) to see the changes.
-Go to the Jellyfin Dashboard > Plugins > Seasonals to configure the active season or enable automatic selection.
+## Usage
+
+After installation and restart:
+
+1. Go to **Dashboard** > **Plugins** > **Seasonals**.
+2. **Enable Seasonals**: Toggle the plugin on or off.
+3. **Automatic Selection**:
+ * If enabled, the plugin selects the theme based on the current date (e.g., Snow in Winter, Hearts in February).
+ * If disabled, you can manually select a theme from the dropdown list.
+4. **Save** your settings.
+5. **Reload your browser page** (F5 or Ctrl+R) to see the changes.
+
+## Build Process
+
+If you want to build the plugin yourself:
+
+1. Clone the repository.
+2. Ensure you have the .NET SDK installed (NET 8 or 9 depending on your Jellyfin version).
+3. Run the build command:
+ ```powershell
+ dotnet build Jellyfin.Plugin.Seasonals/Jellyfin.Plugin.Seasonals.csproj --configuration Release --output bin/Publish
+ ```
+4. The compiled DLL and resources will be in bin/Publish.
+
+## Contributing
+
+Feel free to contribute to this project by creating pull requests or reporting issues.
+
+---
+
+## Legacy Manual Installation
+
+
+Click to expand instructions for the old manual installation method (without plugin)
+
+### Installation
+
+> [!TIP]
+> Take a look at [CodeDevMLH/Jellyfin-Mods-Automated-Script](https://github.com/CodeDevMLH/Jellyfin-Mods-Automated-Script)
+
+1. **Add Seasonal Container to `index.html`**
+ Edit the `index.html` file of your Jellyfin web instance. Add the following code inside the `` tag:
+
+ ```html
+
+
+ ```
+2. **Deploy Files**
+ Place the seasonals folder (including seasonals.js, CSS, and additional JavaScript files for each theme [this one](https://github.com/CodeDevMLH/Jellyfin-Seasonals/tree/main/seasonals)) inside the Jellyfin web server directory (labeld with "web").
+
+3. **Configure Themes**
+ Customize the theme-configs.js file to modify or add new themes. The default configuration is shown below:
+
+ ```javascript
+ const automateThemeSelection = true; // Set to false to disable automatic theme selection based on current date
+ const defaultTheme = 'none'; // Default theme if automatic selection is off
+
+ const themeConfigs = {
+ snowflakes: {
+ css: 'seasonals/snowflakes.css',
+ js: 'seasonals/snowflakes.js',
+ containerClass: 'snowflakes'
+ },
+ snowfall: {
+ css: 'seasonals/snowfall.css',
+ js: 'seasonals/snowfall.js',
+ containerClass: 'snowfall-container'
+ },
+
+ // more configs...
+
+ none: {
+ containerClass: 'none'
+ },
+ };
+ ```
+
+4. **Reload the web interface**
+ After making these changes, restart your Jellyfin server and/or refresh the web interface (ctrl+F5, sometimes you need to clear the browsers temp files/cache (every time with firefox ;-()) to see the changes.
+
+### Theme Settings
+Each theme's JavaScript file contains additional settings to customize its behavior. Here are examples for the `autumn` and `snowflakes` themes:
+
+**Autumn Theme Settings**
+```javascript
+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 animation duration for random leaves
+const leafCount = 25; // Number of random extra leaves
+```
+
+**Snowflakes Theme Settings**
+```javascript
+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 snowflakes
+const snowflakeCount = 25; // Number of random extra snowflakes
+```
+
+### Usage
+**Automatic Theme Selection**
+By default, the theme is automatically selected based on the date. For example:
+
+ Snowfall: January
+ Hearts: February (Valentine's Day)
+ Halloween: October
+
+Modify the determineCurrentTheme() function in seasonals.js to adjust date-based logic.
+
+**Manual Theme Selection**
+To use a fixed theme, set automateThemeSelection to false in the theme-configs.js file and specify a defaultTheme.
+
+**Custom Themes**
+1. Add your CSS and JavaScript files to the seasonals folder.
+
+2. Extend the themeConfigs object with your theme details:
+ ```javascript
+ myTheme: {
+ css: 'seasonals/my-theme.css',
+ js: 'seasonals/my-theme.js',
+ containerClass: 'my-theme-container',
+ }
+ ```
+
+
+### Additional Directory: Separate Single Seasonals
+For users who prefer not to use the automatic seasonal theme selection, individual seasonals are available in the `separate single seasonals` folder. Each seasonal theme can be independently loaded and used without relying on the main automatic selection system.
+
+but this requires to the modify of the `index.html` with adding the html in `add_to_index_html`.
+
+To use a single seasonal theme, include its specific CSS and JS files in your `index.html` inside the ` ` tags provided by `add_to_index_html.html` in the sub-theme-folders as shown below:
+
+```html
+
+
+
+
+
diff --git a/RELEASE_GUIDE.md b/RELEASE_GUIDE.md
index 3bbd818..9b8d434 100644
--- a/RELEASE_GUIDE.md
+++ b/RELEASE_GUIDE.md
@@ -43,10 +43,10 @@ Bevor du baust, musst du die Versionsnummer in den folgenden Dateien aktualisier
## 2. Plugin bauen und packen
-Führe den folgenden Befehl im Terminal (PowerShell) im Hauptverzeichnis aus. Dieser Befehl baut das Projekt, erstellt das ZIP-Archiv und berechnet direkt die Checksumme (Hash).
+Führe den folgenden Befehl im Terminal (PowerShell) im Hauptverzeichnis aus. Wir nutzen hier `dotnet build` statt `publish`, um unnötige Dateien zu vermeiden.
```powershell
-dotnet publish Jellyfin.Plugin.Seasonals/Jellyfin.Plugin.Seasonals.csproj --configuration Release --output bin/Publish; Compress-Archive -Path bin/Publish/* -DestinationPath bin/Publish/Jellyfin.Plugin.Seasonals.zip -Force; $hash = (Get-FileHash -Algorithm MD5 bin/Publish/Jellyfin.Plugin.Seasonals.zip).Hash.ToLower(); $time = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ"); Write-Output "`n----------------------------------------"; Write-Output "NEUE CHECKSUMME (MD5): $hash"; Write-Output "ZEITSTEMPEL: $time"; Write-Output "----------------------------------------`n"
+dotnet build Jellyfin.Plugin.Seasonals/Jellyfin.Plugin.Seasonals.csproj --configuration Release --output bin/Publish; Compress-Archive -Path bin/Publish/* -DestinationPath bin/Publish/Jellyfin.Plugin.Seasonals.zip -Force; $hash = (Get-FileHash -Algorithm MD5 bin/Publish/Jellyfin.Plugin.Seasonals.zip).Hash.ToLower(); $time = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ"); Write-Output "`n----------------------------------------"; Write-Output "NEUE CHECKSUMME (MD5): $hash"; Write-Output "ZEITSTEMPEL: $time"; Write-Output "----------------------------------------`n"
```
## 3. Manifest aktualisieren
diff --git a/logo.png b/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e2ed9ae3c95b41c4153e138ab51f252357eb17a
GIT binary patch
literal 4561557
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