From 926f5aae489cf6522220526439682ec5212ba855 Mon Sep 17 00:00:00 2001 From: Jade Macho Date: Mon, 13 May 2024 20:48:11 +0200 Subject: [PATCH] Further Jellyfin 10.9 fixes --- Jadefin.js | 22 ++++++++++++++++++++-- mods/FixStuck.js | 5 +++++ mods/jade/PatchForceHLSJS.js | 2 +- mods/jade/Shortcuts.js | 3 +++ 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/Jadefin.js b/Jadefin.js index 51a5d05..10f969e 100644 --- a/Jadefin.js +++ b/Jadefin.js @@ -85,6 +85,17 @@ export default JadefinIntegrity("Jadefin", import.meta.url, () => window["Jadefi /** @type {(id: number | string) => any} */ this.webpackTryLoad = id => { + const sid = `${id}`; + + const chunk = window["webpackChunk"].find(c => c[1][sid]); + const chunkNames = chunk ? chunk[0].map(this.webpackChunkIdToJS) : null; + if (chunkNames && (chunkNames.find(c => + c.startsWith("session-login.") || + c.startsWith("35463.") + ))) { + return null; + } + try { return this.webpackLoad?.(id); } catch (e) { @@ -135,8 +146,15 @@ export default JadefinIntegrity("Jadefin", import.meta.url, () => window["Jadefi this.webpackChunkJSs[this.webpackChunkIdToJS(id)] = id; } - // Grabbed via JSON.stringify(webpackChunk.flatMap(c => c[0])) on the home screen. - const webpackChunkIdsWanted = JSON.parse("[1451,45642,23247,60815,81771,55931,1270,9886,12036,86897,59928,44965,56401,7495,17060,67224,67622,94048,36933,82363,36546,99377,82798,14577,78283,37658,94160,7184,83518,15277,71779,9911,82420,49398,32292,37821,74776,99994,87074,67942,60039,27017,65149,27182,4636,87530,4801,82255,99435,77077,71944,59874,21816,89409,79754,69285,43091,64380,40810,90186,87903,70118,64633,10905,68672,71318,86040,70555,41542,4836,30357,6270,49087,64706,19907,927,10672,2,56577,29593,55125,83354,49755,1680,39573,40394,60138,13151,65849,80835,14510,96307,16304,62155,84430,59258,37658,94160,7184,83518,15277,71779,9911,82420,49398,32292,39232,40465,18395,48979,68413,60039,27017,65149,27182,4636,87530,4801,82255,99435,77077,71944,59874,21816,80183,85500,7011,22940,33067,15434,39435,78938,94047,55802,18084,79617,1998,15605,57949,21857,91737,28567,22424,44184,45568,14510,96307,5617,96084,40367,73233,52011,40367,96084,56422,27962,96084,32762,35463,8372,28349,58782,29808,18119,24468,50777,84158,49275,35308,38965]"); + // Grabbed by running this on various screens: + // (()=>{let a = webpackChunk.flatMap(c => c[0]); return JSON.stringify(a.filter((v,i)=>a.indexOf(v)==i))})() + let webpackChunkIdsWanted = [ + // Home + JSON.parse("[1451,45642,23247,60815,81771,55931,1270,9886,12036,86897,59928,44965,56401,7495,17060,67224,67622,94048,36933,82363,36546,99377,82798,14577,78283,37658,94160,7184,83518,15277,71779,9911,82420,49398,32292,37821,74776,99994,87074,67942,60039,27017,65149,27182,4636,87530,4801,82255,99435,77077,71944,59874,21816,89409,79754,69285,43091,64380,40810,90186,87903,70118,64633,10905,68672,71318,86040,70555,41542,4836,30357,6270,49087,64706,19907,927,10672,2,56577,29593,55125,83354,49755,1680,39573,40394,60138,13151,65849,80835,14510,96307,16304,62155,84430,59258,39232,40465,18395,48979,68413,80183,85500,7011,22940,33067,15434,39435,78938,94047,55802,18084,79617,1998,15605,57949,21857,91737,28567,22424,44184,45568,5617,96084,40367,73233,52011,56422,27962,32762,35463,8372,28349,58782,29808,18119,24468,50777,84158,49275,35308,38965]"), + // Login + // JSON.parse("[1451,45642,23247,60815,81771,55931,1270,9886,12036,86897,59928,44965,56401,7495,17060,67224,67622,94048,36933,82363,36546,99377,82798,14577,69285,43091,64380,40810,90186,87903,70118,64633,10905,68672,71318,86040,70555,41542,4836,30357,6270,49087,64706,19907,927,10672,2,56577,29593,55125,83354,49755,1680,39573,40394,60138,13151,65849,80835,14510,96307,16304,62155,84430,59258,37658,94160,7184,83518,15277,71779,9911,82420,49398,32292,39232,40465,18395,48979,68413,60039,27017,65149,27182,4636,87530,4801,82255,99435,77077,71944,59874,21816,80183,85500,7011,22940,33067,15434,39435,78938,94047,55802,18084,79617,1998,15605,57949,21857,91737,28567,22424,44184,45568,5617,96084,40367,73233,52011,56422,27962,32762,35463,8372,28349,58782,29808,18119,24468,50777,84158,49275,35308,38965,11136,14044,16689,22943,27018,30010,39548,63365,94115,70594,98574,59015,58122,66935,28312,86355,88788,53147,89409,78283,37821,74776,99994,87074,67942,79754,1820,32125,28336,70712,93649,17244]"), + ].flatMap(l => l); + webpackChunkIdsWanted = webpackChunkIdsWanted.filter((id, i) => webpackChunkIdsWanted.indexOf(id) == i); // Grabbed through searching for module loads which still errored out. webpackChunkIdsWanted.push( diff --git a/mods/FixStuck.js b/mods/FixStuck.js index 4a2a8be..83580b2 100644 --- a/mods/FixStuck.js +++ b/mods/FixStuck.js @@ -12,6 +12,11 @@ export default JadefinIntegrity("FixStuck", import.meta.url, () => new (class Fi async init(name, url) { await super.init(name, url); + if (true) { + // 10.9 seems to have fixed any stuck scenarios. + return; + } + const time = window.location.hash.startsWith("#!/dialog?") ? 500 : 2500; diff --git a/mods/jade/PatchForceHLSJS.js b/mods/jade/PatchForceHLSJS.js index 2756f13..2944caf 100644 --- a/mods/jade/PatchForceHLSJS.js +++ b/mods/jade/PatchForceHLSJS.js @@ -46,7 +46,7 @@ export default JadefinIntegrity("PatchAndroidHLSJS", import.meta.url, () => new item.icon = "auto_fix_off"; } - return true; + return (current & (ExtrasMenu.IN_LIBRARY | ExtrasMenu.IN_MOVIE)) == current; }, cb: () => { this.isEnabled = !this.isEnabled; diff --git a/mods/jade/Shortcuts.js b/mods/jade/Shortcuts.js index e469d83..40e7ff3 100644 --- a/mods/jade/Shortcuts.js +++ b/mods/jade/Shortcuts.js @@ -25,6 +25,9 @@ export default JadefinIntegrity("Shortcuts", import.meta.url, () => new (class S secondaryText: "Add new movies or series", icon: "playlist_add_circle", in: ExtrasMenu.IN_DRAWER, + cbEl: (/** @type {HTMLElement} */ el, current, alive) => { + el.setAttribute("href", "https://jellyseerr.0x0a.de/"); + }, cb: () => { window.open("https://jellyseerr.0x0a.de/", "_blank"); }