Compare commits

..

18 Commits

Author SHA1 Message Date
CodeDevMLH
0a0080c889 Update manifest.json for release v1.0.0.1 [skip ci] 2026-01-06 19:05:25 +00:00
CodeDevMLH
b2dd3e4d21 fix name (v1.0.0.1)
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 50s
2026-01-06 20:04:34 +01:00
CodeDevMLH
e4dac0d85c Update manifest.json for release v1.0.0.0 [skip ci] 2026-01-06 18:56:30 +00:00
CodeDevMLH
52bc8022fc Fix download URL formatting in release automation workflows and remove unused test.txt file
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 50s
2026-01-06 19:55:41 +01:00
CodeDevMLH
fb4416f4b3 Update manifest.json for release v1.0.0.0 [skip ci] 2026-01-06 18:40:10 +00:00
CodeDevMLH
a67c4ecbe7 Add new test.txt file
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 49s
2026-01-06 19:39:21 +01:00
CodeDevMLH
972c914dab Remove outdated setup instructions for automatic updates in Plugin B 2026-01-06 19:38:43 +01:00
CodeDevMLH
60825b7e2f Update manifest.json for release v1.0.0.0 [skip ci] 2026-01-06 18:36:23 +00:00
CodeDevMLH
5d23594e08 Remove outdated JPRM documentation and release automation workflow
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 50s
2026-01-06 19:35:33 +01:00
CodeDevMLH
2cccb139bf Enhance release automation to update central manifest with plugin GUID and target ABI 2026-01-06 19:34:16 +01:00
CodeDevMLH
f37b946c0c Update manifest.json for release v1.0.0.0 [skip ci] 2026-01-06 17:26:55 +00:00
CodeDevMLH
51c3eec58a Merge branch 'main' of ssh://git.mahom03-spacecloud.de:44322/CodeDevMLH/jellyfin-plugin-media-bar-enhanced
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 47s
2026-01-06 18:26:05 +01:00
CodeDevMLH
236def9fed Update manifest.json for release v1.0.0.0 [skip ci] 2026-01-06 17:26:04 +00:00
CodeDevMLH
f864b1105e Update imageUrl in manifest.json to correct path 2026-01-06 18:26:03 +01:00
CodeDevMLH
353db1eab1 new logo
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 49s
2026-01-06 18:25:13 +01:00
CodeDevMLH
7abaca731d Update manifest.json for release v1.0.0.0 [skip ci] 2026-01-06 01:43:51 +00:00
CodeDevMLH
56a8d82f2a init release v1.0.0.0
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 48s
2026-01-06 02:43:01 +01:00
CodeDevMLH
eec8f23968 add doc 2026-01-06 02:20:20 +01:00
10 changed files with 357 additions and 314 deletions

View File

@@ -40,6 +40,11 @@ jobs:
echo "Detected Version: $VERSION" echo "Detected Version: $VERSION"
echo "VERSION=$VERSION" >> $GITHUB_ENV echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "TARGET_ABI=$TARGET_ABI" >> $GITHUB_ENV
# Also export GUID for later use
PLUGIN_GUID=$(jq -r '.[0].guid' manifest.json)
echo "PLUGIN_GUID=$PLUGIN_GUID" >> $GITHUB_ENV
# Escape newlines in changelog for GITHUB_ENV # Escape newlines in changelog for GITHUB_ENV
echo "CHANGELOG<<EOF" >> $GITHUB_ENV echo "CHANGELOG<<EOF" >> $GITHUB_ENV
@@ -71,7 +76,7 @@ jobs:
REPO_OWNER="${{ github.repository_owner }}" REPO_OWNER="${{ github.repository_owner }}"
REPO_NAME="${{ github.event.repository.name }}" REPO_NAME="${{ github.event.repository.name }}"
VERSION="${{ env.VERSION }}" VERSION="${{ env.VERSION }}"
DOWNLOAD_URL="https://git.mahom03-spacecloud.de/${{ github.repository }}/releases/download/v$VERSION/Jellyfin.Plugin.MediaBarEnhanced.zip" DOWNLOAD_URL="https://git.mahom03-spacecloud.de/$REPO_OWNER/$REPO_NAME/releases/download/v$VERSION/Jellyfin.Plugin.MediaBarEnhanced.zip"
echo "Updating manifest.json with:" echo "Updating manifest.json with:"
echo "Hash: ${{ env.ZIP_HASH }}" echo "Hash: ${{ env.ZIP_HASH }}"
@@ -101,3 +106,78 @@ jobs:
tag_name: "v${{ env.VERSION }}" tag_name: "v${{ env.VERSION }}"
draft: false draft: false
prerelease: false prerelease: false
# Update Message in Remote Repository
- name: Checkout Central Manifest Repo
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/jellyfin-plugin-manifest
path: central-manifest
token: ${{ secrets.JELLYFIN_PLUGIN_MANIFEST_UPDATER_PAT }}
- name: Update Central Manifest
shell: bash
run: |
cd central-manifest
# 1. Get info from previous steps
VERSION="${{ env.VERSION }}"
HASH="${{ env.ZIP_HASH }}"
TIME="${{ env.BUILD_TIME }}"
DOWNLOAD_URL="https://git.mahom03-spacecloud.de/${{ github.repository }}/releases/download/v$VERSION/Jellyfin.Plugin.MediaBarEnhanced.zip"
# 2. Get info from env
PLUGIN_GUID="${{ env.PLUGIN_GUID }}"
CHANGELOG="${{ env.CHANGELOG }}"
TARGET_ABI="${{ env.TARGET_ABI }}"
echo "Updating Central Manifest for Plugin GUID: $PLUGIN_GUID"
# 3. Update/Prepend entry in central manifest.json
# Logic:
# - If array is empty or new version != old version: PREPEND new entry
# - If new version == old version: OVERWRITE (update) existing entry (re-release)
jq --arg guid "$PLUGIN_GUID" \
--arg hash "$HASH" \
--arg time "$TIME" \
--arg url "$DOWNLOAD_URL" \
--arg ver "$VERSION" \
--arg changelog "$CHANGELOG" \
--arg abi "$TARGET_ABI" \
'map(if .guid == $guid then
if .versions[0].version != $ver then
# New Version -> Prepend
.versions = [{
"version": $ver,
"changelog": $changelog,
"targetAbi": $abi,
"sourceUrl": $url,
"checksum": $hash,
"timestamp": $time
}] + .versions
else
# Same Version -> Update existing (overwrite top)
.versions[0].changelog = $changelog |
.versions[0].targetAbi = $abi |
.versions[0].sourceUrl = $url |
.versions[0].checksum = $hash |
.versions[0].timestamp = $time
end
else . end)' \
manifest.json > manifest.json.tmp && mv manifest.json.tmp manifest.json
- name: Commit and Push Central Manifest
run: |
cd central-manifest
git config user.name "CodeDevMLH"
git config user.email "145071728+CodeDevMLH@users.noreply.github.com"
# Check if there are changes
if [[ -n $(git status -s) ]]; then
git add manifest.json
git commit -m "Auto-Update MediaBar Enhanced to v${{ env.VERSION }}"
git push
else
echo "No changes to central manifest."
fi

View File

@@ -39,6 +39,11 @@ jobs:
echo "Detected Version: $VERSION" echo "Detected Version: $VERSION"
echo "VERSION=$VERSION" >> $GITHUB_ENV echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "TARGET_ABI=$TARGET_ABI" >> $GITHUB_ENV
# Also export GUID for later use
PLUGIN_GUID=$(jq -r '.[0].guid' manifest.json)
echo "PLUGIN_GUID=$PLUGIN_GUID" >> $GITHUB_ENV
# Escape newlines in changelog for GITHUB_ENV # Escape newlines in changelog for GITHUB_ENV
echo "CHANGELOG<<EOF" >> $GITHUB_ENV echo "CHANGELOG<<EOF" >> $GITHUB_ENV
@@ -99,3 +104,78 @@ jobs:
draft: false draft: false
prerelease: false prerelease: false
generate_release_notes: true generate_release_notes: true
# Update Message in Remote Repository
- name: Checkout Central Manifest Repo
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/jellyfin-plugin-manifest
path: central-manifest
token: ${{ secrets.JELLYFIN_PLUGIN_MANIFEST_UPDATER_PAT }}
- name: Update Central Manifest
shell: bash
run: |
cd central-manifest
# 1. Get info from previous steps
VERSION="${{ env.VERSION }}"
HASH="${{ env.ZIP_HASH }}"
TIME="${{ env.BUILD_TIME }}"
DOWNLOAD_URL="https://github.com/$REPO_OWNER/$REPO_NAME/releases/download/v$VERSION/Jellyfin.Plugin.MediaBarEnhanced.zip"
# 2. Get info from env
PLUGIN_GUID="${{ env.PLUGIN_GUID }}"
CHANGELOG="${{ env.CHANGELOG }}"
TARGET_ABI="${{ env.TARGET_ABI }}"
echo "Updating Central Manifest for Plugin GUID: $PLUGIN_GUID"
# 3. Update/Prepend entry in central manifest.json
# Logic:
# - If array is empty or new version != old version: PREPEND new entry
# - If new version == old version: OVERWRITE (update) existing entry (re-release)
jq --arg guid "$PLUGIN_GUID" \
--arg hash "$HASH" \
--arg time "$TIME" \
--arg url "$DOWNLOAD_URL" \
--arg ver "$VERSION" \
--arg changelog "$CHANGELOG" \
--arg abi "$TARGET_ABI" \
'map(if .guid == $guid then
if .versions[0].version != $ver then
# New Version -> Prepend
.versions = [{
"version": $ver,
"changelog": $changelog,
"targetAbi": $abi,
"sourceUrl": $url,
"checksum": $hash,
"timestamp": $time
}] + .versions
else
# Same Version -> Update existing (overwrite top)
.versions[0].changelog = $changelog |
.versions[0].targetAbi = $abi |
.versions[0].sourceUrl = $url |
.versions[0].checksum = $hash |
.versions[0].timestamp = $time
end
else . end)' \
manifest.json > manifest.json.tmp && mv manifest.json.tmp manifest.json
- name: Commit and Push Central Manifest
run: |
cd central-manifest
git config user.name "CodeDevMLH"
git config user.email "145071728+CodeDevMLH@users.noreply.github.com"
# Check if there are changes
if [[ -n $(git status -s) ]]; then
git add manifest.json
git commit -m "Auto-Update MediaBar Enhanced to v${{ env.VERSION }}"
git push
else
echo "No changes to central manifest."
fi

View File

@@ -12,7 +12,7 @@
<!-- <TreatWarningsAsErrors>false</TreatWarningsAsErrors> --> <!-- <TreatWarningsAsErrors>false</TreatWarningsAsErrors> -->
<Title>Jellyfin Media Bar Enhanced Plugin</Title> <Title>Jellyfin Media Bar Enhanced Plugin</Title>
<Authors>CodeDevMLH</Authors> <Authors>CodeDevMLH</Authors>
<Version>1.5.0.0</Version> <Version>1.0.0.1</Version>
<RepositoryUrl>https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin</RepositoryUrl> <RepositoryUrl>https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin</RepositoryUrl>
</PropertyGroup> </PropertyGroup>

View File

@@ -59,7 +59,7 @@ namespace Jellyfin.Plugin.MediaBarEnhanced
} }
/// <inheritdoc /> /// <inheritdoc />
public override string Name => "Media Bar"; public override string Name => "Media Bar Enhanced";
/// <inheritdoc /> /// <inheritdoc />
public override Guid Id => Guid.Parse("d7e11d57-819b-4bdd-a88d-53c5f5560225"); public override Guid Id => Guid.Parse("d7e11d57-819b-4bdd-a88d-53c5f5560225");

78
RELEASE_GUIDE.md Normal file
View File

@@ -0,0 +1,78 @@
# Release & Update Guide
Diese Anleitung beschreibt die Schritte, die notwendig sind, um eine neue Version des **MediaBar** Plugins zu veröffentlichen.
## 1. Version erhöhen
Bevor du baust, musst du die Versionsnummer in den folgenden Dateien aktualisieren (z.B. von `1.0.0.0` auf `1.0.1.0`):
1. **`Jellyfin.Plugin.MediaBar/Jellyfin.Plugin.MediaBar.csproj`**
Suche nach `<Version>...</Version>` und ändere die Nummer.
2. **`manifest.json`**
Füge einen neuen Eintrag oben in die `versions`-Liste ein (oder bearbeite den vorhandenen, wenn es noch kein Release gab).
* `version`: Deine neue Nummer.
* `changelog`: Was hat sich geändert?
* `timestamp`: Das aktuelle Datum (wird später aktualisiert).
* `checksum`: (wird nach dem Build aktualisiert).
### Versionierungsschema: Major.Minor.Build.Revision
(Beispiel: 1.0.0.0)
1. **Major** (1.x.x.x)
* **Bedeutung:** Hauptversion.
* **Erhöhen bei:** Inkompatiblen Änderungen (Breaking Changes) oder komplettem Rewrite.
* **Folge:** Setzt alle nachfolgenden Zahlen auf 0.
2. **Minor** (x.1.x.x)
* **Bedeutung:** Nebenversion.
* **Erhöhen bei:** Neuen Features / Funktionen, die abwärtskompatibel sind.
* **Folge:** Setzt Build und Revision auf 0.
3. **Build** (x.x.1.x)
* **Bedeutung:** Patch / Fehlerbehebung.
* **Erhöhen bei:** Bugfixes, Sicherheitsupdates (keine neuen Features).
* **Folge:** Setzt Revision auf 0.
4. **Revision** (x.x.x.1)
* **Bedeutung:** Feingranularer Zähler.
* **Erhöhen bei:** Notfall-Fixes (Hotfixes), automatisierter Erstellung (CI/CD) oder internen Anpassungen.
## 2. Plugin bauen und packen
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 build Jellyfin.Plugin.MediaBar/Jellyfin.Plugin.MediaBar.csproj --configuration Release --output bin/Publish; Compress-Archive -Path bin/Publish/* -DestinationPath bin/Publish/Jellyfin.Plugin.MediaBar.zip -Force; $hash = (Get-FileHash -Algorithm MD5 bin/Publish/Jellyfin.Plugin.MediaBar.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
Nachdem der Befehl durchgelaufen ist, siehst du am Ende eine Ausgabe wie:
```text
----------------------------------------
NEUE CHECKSUMME (MD5): ef8654666ffeae9695e660944f644ad3
ZEITSTEMPEL: 2025-12-15T12:34:56Z
----------------------------------------
```
1. Kopiere die **Checksumme**.
2. Öffne `manifest.json`.
3. Füge die Checksumme bei deinem Versionseintrag unter `"checksum"` ein.
4. Kopiere den **Zeitstempel** und füge ihn unter `"timestamp"` ein.
5. Stelle sicher, dass die `sourceUrl` korrekt auf dein Repository zeigt.
## 4. Veröffentlichen
1. Lade die Datei `bin/Publish/Jellyfin.Plugin.MediaBar.zip` irgendwo hoch (z.B. GitHub Releases).
2. Stelle sicher, dass die `sourceUrl` im `manifest.json` auf diesen Download zeigt (oder auf das Repo, je nachdem wie Jellyfin das handhabt - meistens ist `sourceUrl` der Link zum ZIP).
* *Hinweis:* Wenn du das Plugin über ein Repo hostest, muss die URL im Manifest direkt auf die ZIP-Datei zeigen.
## Zusammenfassung der Dateien
| Datei | Zweck | Änderung nötig? |
| :--- | :--- | :--- |
| `Jellyfin.Plugin.MediaBar.csproj` | Definiert die DLL-Version | **Ja** |
| `build.yaml` | Build-Konfiguration | **Ja** |
| `manifest.json` | Plugin-Liste für Jellyfin | **Ja** (Version, Hash, Zeit) |

106
git_cheat_sheet.md Normal file
View File

@@ -0,0 +1,106 @@
# 🚀 Git Cheat Sheet: Branches, Merge, Rebase & VS Code
## 🌳 Branches (Zweige)
* **`main`** → Stabiler Stand, Production-ready (Deployment).
* **`dev`** → Aktive Entwicklung, Sammelbecken für Features.
---
## 🛠 Zusammenführen von Änderungen
### Git Merge
Führt zwei Zweige zusammen. Git sucht den letzten gemeinsamen Basispunkt und erstellt einen neuen **Merge-Commit**.
```bash
git checkout dev
git merge main
```
| Details | |
|-----------|--------|
| Wann? | In Team-Branches, bei bereits gepushten Branches, wenn Stabilität wichtiger als eine saubere History ist. |
| Vorteile | Sicher, einfach nachvollziehbar, schreibt die History nicht um. |
| Nachteile | Die History kann bei vielen Merges unübersichtlich ("Spaghetti-Graph") werden. |
### Git Rebase
Setzt deine Commits neu auf die Spitze eines anderen Branches. Die Commit-IDs werden dabei neu geschrieben.
```bash
git checkout dev
git rebase main
```
| Details | |
|-----------|--------|
| Wann? | In lokalen Feature-Branches (bevor sie geteilt werden), um die History sauber zu halten. |
| Vorteile | Erzeugt eine perfekt lineare, leicht lesbare History. |
| Nachteile | ⚠️ Gefährlich auf geteilten/öffentlichen Branches. Konflikte müssen ggf. für jeden einzelnen Commit gelöst werden. |
---
## 📦 Temporäres Speichern & Spezialbefehle
### Stash (Das "Regal")
Speichert uncommitted Changes temporär, um das Arbeitsverzeichnis sauber zu machen, ohne zu committen.
```bash
git stash # Änderungen "parken".
git stash pop # Änderungen zurückholen und Stash leeren.
```
**Wann?** Wenn du schnell den Branch wechseln musst, aber deine Arbeit noch nicht fertig ist.
### Cherry-pick
Kopiert einen ganz gezielten Commit von einem Branch in deinen aktuellen.
```bash
git cherry-pick <commit-hash>
```
**Wann?** Wenn ein Bugfix auf dem falschen Branch gelandet ist oder du nur eine einzige Funktion aus einem Feature-Branch brauchst.
---
## 🔄 Checkout & Switch
```bash
git checkout dev # oder git switch dev Wechselt zum Branch.
git checkout -f dev # Force Checkout: Wechselt den Branch und verwirft alle ungespeicherten lokalen Änderungen unwiderruflich! ⚠️
```
---
## 💻 VS Code Git-Optionen (UI)
VS Code bietet beim Branch-Wechsel oft drei intelligente Optionen an:
* **Migrate Changes ⭐**
* Nimmt deine aktuellen Änderungen einfach mit in den neuen Branch.
* (Intern: stash → switch → stash pop).
* **Stash & Checkout**
* Parkt deine Änderungen sicher im Stash und wechselt den Branch. Die Änderungen bleiben im Stash, bis du sie manuell wieder herausholst.
* **Force Checkout ⚠️**
* Wechselt den Branch und löscht deine aktuellen, ungespeicherten Änderungen. Nur nutzen, wenn die Arbeit weggeworfen werden kann.
---
## 🔄 Typischer Sync-Workflow
Um den Entwicklungs-Branch aktuell zu halten, nachdem dev in main gemerged wurde:
1. Auf dev entwickeln.
2. Merge dev → main für das Release.
3. Zurück auf dev wechseln:
```bash
git checkout dev
git merge main # (oder rebase), um den neuesten Stand vom Main wieder in Dev zu haben.
```
---
## 🧠 Merksätze
* **Merge** = Historien verbinden (Sicher & Dokumentiert).
* **Rebase** = Historie neu schreiben (Linear & Sauber).
* **Stash** = "Ich parke das mal kurz hier."
* **Migrate Changes** = Sicherer Branch-Wechsel mit "Gepäck".

BIN
logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 MiB

After

Width:  |  Height:  |  Size: 312 KiB

BIN
logos/MediaBar_logo_mod.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

View File

@@ -2,171 +2,27 @@
{ {
"guid": "d7e11d57-819b-4bdd-a88d-53c5f5560225", "guid": "d7e11d57-819b-4bdd-a88d-53c5f5560225",
"name": "Media Bar Enhanced", "name": "Media Bar Enhanced",
"description": "Adds a enhanced media bar (featured content) to the Jellyfin web interface.", "description": "A jellyfin plugin to display a media bar (featured content) for jellyfin web.",
"overview": "Media Bar for Jellyfin", "overview": "Media Bar for Jellyfin",
"owner": "CodeDevMLH", "owner": "CodeDevMLH",
"category": "General", "category": "General",
"imageUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/raw/branch/main/logo.png", "imageUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/raw/branch/main/logo.png",
"versions": [ "versions": [
{
"version": "1.5.0.0",
"changelog": "Renamed to Media Bar Enhanced",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.5.0.0/Jellyfin.Plugin.MediaBarEnhanced.zip",
"checksum": "ccf3a1e8caaa86f298d4f20cd815edf1",
"timestamp": "2026-01-06T01:18:41Z"
},
{
"version": "1.4.0.0",
"changelog": "Add more config description, add search collection/playlist by name",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.4.0.0/Jellyfin.Plugin.MediaBar.zip",
"checksum": "b8a3667fa8290242c74411b2bd1c06da",
"timestamp": "2026-01-04T23:50:01Z"
},
{
"version": "1.3.0.0",
"changelog": "Add file transformation fallback",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.3.0.0/Jellyfin.Plugin.MediaBar.zip",
"checksum": "4379eab39684501af97876abe1b4ab91",
"timestamp": "2026-01-04T23:47:38Z"
},
{
"version": "1.2.0.0",
"changelog": "Add seasonals content mode",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.2.0.0/Jellyfin.Plugin.MediaBar.zip",
"checksum": "8ad0b9d38aa4bd4bd16e1f9f0e6c4d8c",
"timestamp": "2026-01-04T15:13:36Z"
},
{
"version": "1.1.0.6",
"changelog": "UI improvements",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.1.0.6/Jellyfin.Plugin.MediaBar.zip",
"checksum": "91d342865ebdf9b4efd53561125c5604",
"timestamp": "2026-01-04T14:19:50Z"
},
{
"version": "1.1.0.5",
"changelog": "Added collection (boxsets) IDs to slideshow option",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.1.0.5/Jellyfin.Plugin.MediaBar.zip",
"checksum": "41b4ddf3b6f9fc79eac64acb24989e67",
"timestamp": "2026-01-04T14:09:29Z"
},
{
"version": "1.1.0.4",
"changelog": "Added loading screen disable option T3",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.1.0.4/Jellyfin.Plugin.MediaBar.zip",
"checksum": "f0d2bf6c1ce7bd7166776cd7a4e59d6f",
"timestamp": "2026-01-04T12:41:07Z"
},
{
"version": "1.1.0.3",
"changelog": "Added loading screen disable option",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.1.0.3/Jellyfin.Plugin.MediaBar.zip",
"checksum": "f93373b9bb1f3614e4d4237b04619c32",
"timestamp": "2026-01-04T01:57:20Z"
},
{
"version": "1.1.0.2",
"changelog": "Added loading screen disable option",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.1.0.2/Jellyfin.Plugin.MediaBar.zip",
"checksum": "06907adcd3f6e022c622d5c91119d1e1",
"timestamp": "2026-01-03T23:03:51Z"
},
{
"version": "1.1.0.1",
"changelog": "Added custom media ids",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.1.0.1/Jellyfin.Plugin.MediaBar.zip",
"checksum": "81e90c7a8778856641bbc47ac60ebb32",
"timestamp": "2026-01-03T23:00:39Z"
},
{
"version": "1.1.0.0",
"changelog": "Added custom media ids",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.1.0.0/Jellyfin.Plugin.MediaBar.zip",
"checksum": "03ee3f2eed26ebbc959ef49730018a98",
"timestamp": "2026-01-03T22:44:54Z"
},
{
"version": "1.0.0.8",
"changelog": "small ui changes",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.0.0.8/Jellyfin.Plugin.MediaBar.zip",
"checksum": "f1e8acb78422f6dc729b4086deb9929e",
"timestamp": "2026-01-03T18:43:37Z"
},
{
"version": "1.0.0.7",
"changelog": "always show arrows & keyboard controls",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.0.0.7/Jellyfin.Plugin.MediaBar.zip",
"checksum": "e88519a9a7405eb5083e7c950eb4a08b",
"timestamp": "2026-01-03T18:22:25Z"
},
{
"version": "1.0.0.6",
"changelog": "",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.0.0.6/Jellyfin.Plugin.MediaBar.zip",
"checksum": "18137a92aa8966584e123ba76bbe71c2",
"timestamp": "2026-01-03T18:11:43Z"
},
{
"version": "1.0.0.5",
"changelog": "",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.0.0.5/Jellyfin.Plugin.MediaBar.zip",
"checksum": "156f980aad077b272887a6ab3cfcdfe9",
"timestamp": "2026-01-03T02:42:00Z"
},
{
"version": "1.0.0.4",
"changelog": "",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.0.0.4/Jellyfin.Plugin.MediaBar.zip",
"checksum": "e05f0024fe66a9b271c216c3555ce9ff",
"timestamp": "2026-01-03T02:15:29Z"
},
{
"version": "1.0.0.3",
"changelog": "",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.0.0.3/Jellyfin.Plugin.MediaBar.zip",
"checksum": "c652dba434689a1116e10010235fa48c",
"timestamp": "2026-01-03T01:42:53Z"
},
{
"version": "1.0.0.2",
"changelog": "",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.0.0.2/Jellyfin.Plugin.MediaBar.zip",
"checksum": "aded8f61ac5aed3449190cf7c41aa693",
"timestamp": "2026-01-03T01:13:21Z"
},
{ {
"version": "1.0.0.1", "version": "1.0.0.1",
"changelog": "", "changelog": "Initial release",
"targetAbi": "10.11.0.0", "targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.0.0.1/Jellyfin.Plugin.MediaBar.zip", "sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.0.0.1/Jellyfin.Plugin.MediaBarEnhanced.zip",
"checksum": "8401a51d26ae1906a3eae9f8ff72e9a3", "checksum": "da9766deb7b81b2b41000ac139fa4d5b",
"timestamp": "2026-01-02T22:45:28Z" "timestamp": "2026-01-06T19:05:24Z"
}, },
{ {
"version": "1.0.0.0", "version": "1.0.0.0",
"changelog": "", "changelog": "Initial release",
"targetAbi": "10.11.0.0", "targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Media-Bar-Plugin/releases/download/v1.0.0.0/Jellyfin.Plugin.MediaBar.zip", "sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.0.0.0/Jellyfin.Plugin.MediaBarEnhanced.zip",
"checksum": "3cbd8527a0cb191dbc4a5126b49b60f9", "checksum": "2ba7cc7f238f6aa7097628797935b903",
"timestamp": "2026-01-02T22:08:37Z" "timestamp": "2026-01-06T18:56:30Z"
} }
] ]
} }

View File

@@ -1,157 +0,0 @@
name: Auto Release Plugin
on:
push:
branches:
- main
paths-ignore:
- '.github/**'
- 'README.md'
- 'jellyfin.ruleset'
- '.gitignore'
- '.editorconfig'
- 'LICENSE'
- 'logo.png'
jobs:
build-and-release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '9.x'
- name: Read Version from Manifest
id: read_version
run: |
VERSION=$(jq -r '.[0].versions[0].version' manifest.json)
CHANGELOG=$(jq -r '.[0].versions[0].changelog' manifest.json)
TARGET_ABI=$(jq -r '.[0].versions[0].targetAbi' manifest.json)
echo "Detected Version: $VERSION"
echo "VERSION=$VERSION" >> $GITHUB_ENV
# Escape newlines in changelog for GITHUB_ENV
echo "CHANGELOG<<EOF" >> $GITHUB_ENV
echo "$CHANGELOG" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Build and Zip
shell: bash
run: |
# Inject version from manifest into the build
dotnet build Jellyfin.Plugin.MediaBarEnhanced/Jellyfin.Plugin.MediaBarEnhanced.csproj --configuration Release --output bin/Publish /p:Version=${{ env.VERSION }} /p:AssemblyVersion=${{ env.VERSION }}
cd bin/Publish
zip -r Jellyfin.Plugin.MediaBarEnhanced.zip *
cd ../..
# Calculate hash
HASH=$(md5sum bin/Publish/Jellyfin.Plugin.MediaBarEnhanced.zip | awk '{ print $1 }')
TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
# Export variables for next steps
echo "ZIP_HASH=$HASH" >> $GITHUB_ENV
echo "BUILD_TIME=$TIME" >> $GITHUB_ENV
echo "ZIP_PATH=bin/Publish/Jellyfin.Plugin.MediaBarEnhanced.zip" >> $GITHUB_ENV
- name: Update Local manifest.json (Optional)
shell: bash
run: |
REPO_OWNER="${{ github.repository_owner }}"
REPO_NAME="${{ github.event.repository.name }}"
VERSION="${{ env.VERSION }}"
DOWNLOAD_URL="https://github.com/$REPO_OWNER/$REPO_NAME/releases/download/v$VERSION/Jellyfin.Plugin.MediaBarEnhanced.zip"
echo "Updating local manifest.json with:"
echo "Hash: ${{ env.ZIP_HASH }}"
echo "Time: ${{ env.BUILD_TIME }}"
echo "Url: $DOWNLOAD_URL"
jq --arg hash "${{ env.ZIP_HASH }}" \
--arg time "${{ env.BUILD_TIME }}" \
--arg url "$DOWNLOAD_URL" \
'.[0].versions[0].checksum = $hash | .[0].versions[0].timestamp = $time | .[0].versions[0].sourceUrl = $url' \
manifest.json > manifest.json.tmp && mv manifest.json.tmp manifest.json
- name: Commit Local manifest.json
uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: "Update manifest.json for release v${{ env.VERSION }} [skip ci]"
file_pattern: manifest.json
- name: Create Release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
name: "v${{ env.VERSION }}"
# body: ${{ env.CHANGELOG }}
files: ${{ env.ZIP_PATH }}
draft: false
prerelease: false
generate_release_notes: true
# Update Message in Remote Repository
- name: Checkout Central Manifest Repo
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/jellyfin-plugin-manifest
path: central-manifest
token: ${{ secrets.CENTRAL_REPO_PAT }}
- name: Update Central Manifest
shell: bash
run: |
cd central-manifest
# 1. Get info from previous steps
VERSION="${{ env.VERSION }}"
HASH="${{ env.ZIP_HASH }}"
TIME="${{ env.BUILD_TIME }}"
# URL points to the RELEASE we just created in the CURRENT repo
DOWNLOAD_URL="https://github.com/${{ github.repository }}/releases/download/v$VERSION/Jellyfin.Plugin.MediaBarEnhanced.zip"
# 2. Extract GUID from the *built* artifact or the source manifest (in parent dir)
# We use the source manifest from the checkout in '..'
PLUGIN_GUID=$(jq -r '.[0].guid' ../manifest.json)
echo "Updating Central Manifest for Plugin GUID: $PLUGIN_GUID"
# 3. Update the specific plugin entry in the central manifest.json
# This logic finds the object with matching guid, and updates its first version entry.
jq --arg guid "$PLUGIN_GUID" \
--arg hash "$HASH" \
--arg time "$TIME" \
--arg url "$DOWNLOAD_URL" \
--arg ver "$VERSION" \
'map(if .guid == $guid then
.versions[0].version = $ver |
.versions[0].checksum = $hash |
.versions[0].timestamp = $time |
.versions[0].sourceUrl = $url
else . end)' \
manifest.json > manifest.json.tmp && mv manifest.json.tmp manifest.json
- name: Commit and Push Central Manifest
run: |
cd central-manifest
git config user.name "GitHub Action"
git config user.email "action@github.com"
# Check if there are changes
if [[ -n $(git status -s) ]]; then
git add manifest.json
git commit -m "Update MediaBar Enhanced to v${{ env.VERSION }}"
git push
else
echo "No changes to central manifest."
fi