From c8421d12b0f07d400660f8d500d2c665fda59ddf Mon Sep 17 00:00:00 2001
From: CodeDevMLH <145071728+CodeDevMLH@users.noreply.github.com>
Date: Wed, 28 Jan 2026 23:39:03 +0100
Subject: [PATCH] Bump version to 1.2.3.7 and update changelog for release
---
.../Jellyfin.Plugin.MediaBarEnhanced.csproj | 2 +-
.../Web/mediaBarEnhanced.css | 2 +-
.../Web/mediaBarEnhanced.js | 47 ++++++++++++++++---
manifest.json | 10 ++--
4 files changed, 48 insertions(+), 13 deletions(-)
diff --git a/Jellyfin.Plugin.MediaBarEnhanced/Jellyfin.Plugin.MediaBarEnhanced.csproj b/Jellyfin.Plugin.MediaBarEnhanced/Jellyfin.Plugin.MediaBarEnhanced.csproj
index f5c312a..3f00eb4 100644
--- a/Jellyfin.Plugin.MediaBarEnhanced/Jellyfin.Plugin.MediaBarEnhanced.csproj
+++ b/Jellyfin.Plugin.MediaBarEnhanced/Jellyfin.Plugin.MediaBarEnhanced.csproj
@@ -12,7 +12,7 @@
Jellyfin Media Bar Enhanced Plugin
CodeDevMLH
- 1.2.3.6
+ 1.2.3.7
https://github.com/CodeDevMLH/jellyfin-plugin-media-bar-enhanced
diff --git a/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.css b/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.css
index 4577d42..909126f 100644
--- a/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.css
+++ b/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.css
@@ -1,5 +1,5 @@
/*
- * Jellyfin Slideshow by M0RPH3US v3.0.8
+ * Jellyfin Slideshow by M0RPH3US v3.0.9
* Modified by CodeDevMLH v1.1.0.0
*
* New features:
diff --git a/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js b/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js
index 52ec141..99d5869 100644
--- a/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js
+++ b/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js
@@ -1,5 +1,5 @@
/*
- * Jellyfin Slideshow by M0RPH3US v3.0.8
+ * Jellyfin Slideshow by M0RPH3US v3.0.9
* Modified by CodeDevMLH v1.1.0.0
*
* New features:
@@ -843,29 +843,64 @@ const LocalizationUtils = {
throw new Error(`Failed to fetch translations: ${response.statusText}`);
}
+ /**
+ * @example
+ * Standard version
+ * ```js
+ * "use strict";
+ * (self.webpackChunk = self.webpackChunk || []).push([[62634], {
+ * 30985: function(e) {
+ * e.exports = JSON.parse('{"Absolute":"..."}')
+ * }
+ * }]);
+ * ```
+ *
+ * Minified version
+ * ```js
+ * "use strict";(self.webpackChunk=self.webpackChunk||[]).push([[24072],{60715:function(e){e.exports=JSON.parse('{"Absolute":"..."}')}}]);
+ * ```
+ */
const chunkText = await response.text();
+ const replaceEscaped = (text) =>
+ text.replace(/\\"/g, '"').replace(/\\n/g, '\n').replace(/\\\\/g, '\\').replace(/\\'/g, "'");
+
+ // 1. Try to remove start and end wrappers first
+ try {
+ // Matches from start of file to the beginning of JSON.parse('
+ const START = /^(.*)JSON\.parse\(['"]/gms;
+ // Matches from the end of the JSON string to the end of the file
+ const END = /['"]?\)?\s*}?(\r\n|\r|\n)?}?]?\)?;(\r\n|\r|\n)?$/gms;
+
+ const jsonString = replaceEscaped(chunkText.replace(START, '').replace(END, ''));
+ this.translations[locale] = JSON.parse(jsonString);
+ return;
+ } catch (e) {
+ console.error('Failed to parse JSON from standard extraction.');
+ // Try alternative extraction below
+ }
+
+ // 2. Try to extract only the JSON string directly
let jsonMatch = chunkText.match(/JSON\.parse\(['"](.*?)['"]\)/);
if (jsonMatch) {
- let jsonString = jsonMatch[1]
- .replace(/\\"/g, '"')
- .replace(/\\n/g, '\n')
- .replace(/\\\\/g, '\\')
- .replace(/\\'/g, "'");
try {
+ const jsonString = replaceEscaped(jsonMatch[1]);
this.translations[locale] = JSON.parse(jsonString);
return;
} catch (e) {
+ console.error('Failed to parse JSON from direct extraction.');
// Try direct extraction
}
}
+ // 3. Fallback: extract everything between the first { and the last }
const jsonStart = chunkText.indexOf('{');
const jsonEnd = chunkText.lastIndexOf('}') + 1;
if (jsonStart !== -1 && jsonEnd > jsonStart) {
const jsonString = chunkText.substring(jsonStart, jsonEnd);
try {
this.translations[locale] = JSON.parse(jsonString);
+ return;
} catch (e) {
console.error("Failed to parse JSON from chunk:", e);
}
diff --git a/manifest.json b/manifest.json
index 70a0384..57125aa 100644
--- a/manifest.json
+++ b/manifest.json
@@ -9,12 +9,12 @@
"imageUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/raw/branch/main/logo.png",
"versions": [
{
- "version": "1.2.3.6",
- "changelog": "- Fixes the issue where buttons were cut off on smaller screens such as on S24/S25.",
+ "version": "1.2.3.7",
+ "changelog": "- Fixes the issue where buttons were cut off on smaller screens such as on S24/S25.\n- Update mediaBarEnhanced.js and mediaBarEnhanced.css with version 3.0.9 from original repo",
"targetAbi": "10.11.0.0",
- "sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.2.3.6/Jellyfin.Plugin.MediaBarEnhanced.zip",
- "checksum": "da73bb490548c122906419d2762a2d00",
- "timestamp": "2026-01-28T21:31:54Z"
+ "sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.2.3.7/Jellyfin.Plugin.MediaBarEnhanced.zip",
+ "checksum": "",
+ "timestamp": ""
},
{
"version": "1.2.2.0",