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",