splix-js-demodularizer

A vile trick that may aid you in executing your beloved scripts in the novel version of the client

ეს სკრიპტი არ უნდა იყოს პირდაპირ დაინსტალირებული. ეს ბიბლიოთეკაა, სხვა სკრიპტებისთვის უნდა ჩართეთ მეტა-დირექტივაში // @require https://update.greasyfork.org/scripts/478491/1377223/splix-js-demodularizer.js.

// ==UserScript==
// @name         splix-js-demodularizer
// @namespace    http://tampermonkey.net/
// @version      0.2.3
// @description  A vile trick that may aid you in executing your beloved scripts in the novel version of the client
// @author       You
// @match        https://splix.io/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=splix.io
// @grant        none
// @run-at       document-start
// ==/UserScript==

await (async function() {
    'use strict';

    function isAlreadyInjected() {
        for (let s of document.getElementsByTagName("script"))
            if (s.innerText.includes("globalThis.IS_DEV_BUILD"))
                return true;
        return false;
    }

    if (window.jsDemodularized || isAlreadyInjected() || document.location.pathname !== "/") return;

    const version = "0.2.3";
    const demodularizerVersion = localStorage.getItem("demodularizerVersion");
    const clientCode = localStorage.getItem("clientCode");

    if (demodularizerVersion === version) {
        document.open("text/html");
        document.write(clientCode);
        document.close();
        window.jsDemodularized = true;
    } else {
        window.stop();

        async function getContent(path) {
            let response = await fetch("https://raw.githubusercontent.com/jespertheend/splix/d41be0f6f4eba6be4e4cda2138452d5389311a07/client/" + path);
            return response.text();
        }

        const globals = (await getContent("src/globals.js")).replace("IS_DEV_BUILD = true", "IS_DEV_BUILD = false");
        const serverSelection = (await getContent("src/network/serverSelection.js")).replaceAll("export ", "");
        const main = "'use strict';\n" + globals + serverSelection + (await getContent("src/main.js")).replace(/.*/, "").substr(1).replace(/.*/, "").substr(1);
        const html = (await getContent("index.html")).substr(1).replace(/.*/, "").substr(1).replace(/<script.*?\/main.*?<\/script>/, "").replace("</body>", `<script>${main}</script></body>`)


        localStorage.setItem("clientCode", html);
        localStorage.setItem("demodularizerVersion", version);
        location.reload();
    }
})();