Greasy Fork is available in English.

[Pixlr] Bypass saves

Bypass saves in pixlr

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         [Pixlr] Bypass saves
// @namespace    https://greasyfork.org/users/821661
// @version      1.0
// @description  Bypass saves in pixlr
// @author       hdyzen
// @match        https://pixlr.com/*
// @icon         https://www.google.com/s2/favicons?domain=pixlr.com/&sz=64
// @grant        none
// @run-at       document-start
// @license      GPL-3.0-only
// ==/UserScript==

const observer = new MutationObserver(mutationsHandler)

observer.observe(document.documentElement, {
    childList: true,
    subtree: true
})

function mutationsHandler(muts) {
    for (const mut of muts) {
        for (const node of mut.addedNodes) {
            if (isNodeTarget(node)) handlerScript(node);
        }
    }
}

function isNodeTarget(node) {
    return node.tagName === "SCRIPT" && node.src?.includes("/dist/express.");
}

async function handlerScript(node) {
    const src = node.src;
    const content = await fetch(src).then(res => res.text());

    const newScript = document.createElement("script");
    newScript.textContent = content.replace("l()>=3", "false");
    document.head.appendChild(newScript);

    node.remove();
}