您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
sjd module
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.sleazyfork.org/scripts/548054/1671618/s-j-d.js
// ==UserScript== // @name s-j-d // @namespace http://tampermonkey.net/ // @version 0.1.20 // @description sjd module // @author You // @match https://splix.io/ // @grant none // @run-at document-start // ==/UserScript== await(async function () { if (document.location.pathname !== "/") return; const verToInt = v => v.split(".").reduce((acc, n, i) => acc + parseInt(n) * Math.pow(100, 2 - i), 0) const isNotInjected = () => !window.jsDemodularized && ![...document.scripts].some(s => s.innerText.includes("globalThis.IS_DEV_BUILD")) const isStorageActual = () => verToInt(localStorage.clientCode?.match(/@demod.*?\sv:(\d+\.\d+\.\d+)/)?.[1] || "0.0.0") >= verToInt(currentVersion) && Math.floor(Date.now() / 86400000) === Math.floor((parseInt(localStorage.clientCode?.match(/@demod.*?\sts:(\d+)/)?.[1]) || 0) / 86400000) const currentVersion = "0.1.19"; localStorage.demodularizerVersion = "0.2.3" if (window.nested) bundle() else if (isStorageActual()) { if (isNotInjected()) inject() } else checkForUpdates() function inject() { document.open("text/html") document.write(localStorage.clientCode) document.close() window.jsDemodularized = true } async function checkForUpdates() { let latest, version try { latest = (await (await fetch(`https://update.greasyfork.org/scripts/548054/s-j-d.js?v=${Date.now()}`)).text()) version = latest.match(/@version\s+(\d+\.\d+\.\d+)/)?.[1] || "0.0.0" } catch { } if (version && verToInt(version) > verToInt(currentVersion)) { await (new Function("return (async () => { window.nested = true; " + latest + " })()"))() } else { await bundle() } } async function bundle() { async function bundleJS(url, visited = new Set()) { if (visited.has(url)) return "" visited.add(url) let response = await fetch(url) if (!response.ok) throw new Error(`Response status: ${response.status}, URL: ${url}`) let script = (await response.text()).replaceAll(/\bexport\b/g, "") const importRegex = /^import[\s\S]*?["'](.*)["'].*$/gm let match let result = script while ((match = importRegex.exec(script)) !== null) { const importPath = match[1] let importedCode if (importPath.includes('deps/')) { const parts = importPath.replace('../../deps/', '').split('/') const cdnUrl = `https://cdn.jsdelivr.net/npm/@adlad/${parts[0].replace('adlad-', '')}@${parts[1]}/${parts.slice(2).join('/')}` importedCode = await bundleJS(cdnUrl, visited) } else if (importPath.startsWith('.')) { importedCode = await bundleJS(new URL(importPath, url).toString(), visited) } result = result.replace(match[0], importedCode) } return result } window.stop() const clientPath = "https://raw.githubusercontent.com/jespertheend/splix/refs/tags/v0.19.0/client/" const bundled = (await bundleJS(clientPath + "src/main.js")) .replaceAll(/((\S)(\S)\3\2\S+(s)\S+\4\S+\4\S+)\d/g, "$10") .replace(/IS_DEV_BUILD\s*=\s*true/, "IS_DEV_BUILD = false") + `\n/* @demod v:${currentVersion} ts:${Date.now()} */` localStorage.clientCode = (await (await fetch(clientPath + "index.html")).text()) .replace(/<script.*?\/main.*?<\/script>/, "") .replace("</body>", `<script>${bundled}</script></body>`) location.reload() } })();