🗑️ Pro Upsell Remover (Layout Fixed + Error Killer)

Remove "Unlock pro models" + Error screens + Fix ALL layout issues

Ten skrypt nie powinien być instalowany bezpośrednio. Jest to biblioteka dla innych skyptów do włączenia dyrektywą meta // @require https://update.greatest.deepsurf.us/scripts/574222/1800763/%F0%9F%97%91%EF%B8%8F%20Pro%20Upsell%20Remover%20%28Layout%20Fixed%20%2B%20Error%20Killer%29.js

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==UserScript==
// @name         🗑️ Pro Upsell Remover (Layout Fixed + Error Killer)
// @namespace    http://violentmonkey.github.io/
// @version      3.1
// @description  Remove "Unlock pro models" + Error screens + Fix ALL layout issues
// @author       You
// @match        *://*/*
// @grant        none
// @run-at       document-start
// @noframes
// ==/UserScript==

(function() {
    'use strict';

    console.log('☠️ UPSell + ERROR KILLER v4.1 - LOCKING ON ALL TARGETS...');

    // ========== STEP 1: IMMEDIATE CSS STRIKE ==========
    const killerCSS = document.createElement('style');
    killerCSS.id = 'upsell-killer';
    killerCSS.textContent = `
        /* Upsell targets */
        div.relative.z-10.p-3.sm\\:p-4,
        div[class*="relative z-10 p-3 sm:p-4"],
        div[class*="p-3 sm:p-4"][class*="z-10"] {
            all: unset !important;
            display: none !important !important;
            visibility: hidden !important !important;
            opacity: 0 !important !important;
            height: 0px !important !important;
            width: 0px !important !important;
            margin: 0 !important !important;
            padding: 0 !important !important;
            border: none !important !important;
            position: absolute !important !important;
            left: -10000px !important !important;
            top: -10000px !important !important;
            z-index: -100000 !important !important;
            transform: scale(0) !important !important;
            pointer-events: none !important !important;
            overflow: hidden !important !important;
        }

        /* ERROR SCREEN KILLER */
        div[style*="height: 100vh"],
        div[style*="height: 100vh"][style*="text-align: center"],
        div[style*="display: flex"][style*="flex-direction: column"][style*="align-items: center"][style*="justify-content: center"],
        h2[style*="font-size: 14px"][style*="font-weight: 400"][style*="line-height: 28px"] {
            display: none !important;
            visibility: hidden !important;
            height: 0 !important;
            width: 0 !important;
            opacity: 0 !important;
            position: absolute !important;
            left: -9999px !important;
            top: -9999px !important;
            z-index: -99999 !important;
        }

        /* Force children hidden */
        div.relative.z-10.p-3.sm\\:p-4 *,
        div[class*="relative z-10 p-3"] *,
        div[style*="height: 100vh"] * {
            display: none !important;
        }

        /* Layout repair */
        div.relative.z-10.p-3.sm\\:p-4 ~ *,
        div[class*="p-3 sm:p-4"] ~ *,
        div[style*="height: 100vh"] ~ * {
            margin-top: 0 !important;
            padding-top: 0 !important;
        }
    `;
    (document.head || document.documentElement).appendChild(killerCSS);

    // ========== STEP 2: DOM HUNTER ==========
    function huntAndDestroy() {
        let killed = false;

        // Exact upsell match
        const exactTarget = document.querySelector('div.relative.z-10.p-3.sm\\:p-4');
        if (exactTarget) {
            exactTarget.remove();
            console.log('🎯 EXACT UPSELL TARGET DESTROYED!');
            killed = true;
        }

        // ERROR SCREEN HUNT
        const errorTargets = document.querySelectorAll('div[style*="height: 100vh"], h2[style*="font-size: 14px"][style*="Application error"]');
        errorTargets.forEach(el => {
            if (el.textContent?.includes('Application error') || el.style?.height === '100vh') {
                el.remove();
                console.log('🚨 ERROR SCREEN DESTROYED!');
                killed = true;
            }
        });

        // Partial class match (upsell)
        const partialTargets = document.querySelectorAll('div[class*="relative"][class*="z-10"][class*="p-3"]');
        partialTargets.forEach(el => {
            if (el.querySelector('h2')?.textContent?.includes('Unlock')) {
                el.remove();
                console.log('🔥 PARTIAL UPSELL TARGET DESTROYED!');
                killed = true;
            }
        });

        // Text-based hunt (upsell + error)
        document.querySelectorAll('*').forEach(el => {
            const text = (el.textContent || '').toLowerCase();
            if (text.includes('unlock pro models') || text.includes('application error')) {
                const parent = el.closest('div[class*="relative"], div[class*="p-3"], div[style*="height: 100vh"]');
                if (parent) {
                    parent.remove();
                    console.log('💀 TEXT HUNT SUCCESS!');
                    killed = true;
                }
            }
        });

        return killed;
    }

    // ========== STEP 3: RELENTLESS ASSAULT ==========
    let killCount = 0;
    const assault = setInterval(() => {
        if (huntAndDestroy()) {
            killCount++;
            console.log(`⚡ KILL #${killCount} - Target eliminated!`);
        }

        // Check if page is fully loaded
        if (document.readyState === 'complete' && killCount >= 5) {
            clearInterval(assault);
            console.log('🏆 ASSAULT COMPLETE - ALL TARGETS ELIMINATED');
        }
    }, 10); // 10ms intervals - NO MERCY

    // ========== STEP 4: MUTATION SHIELD ==========
    function deployShield() {
        const shield = new MutationObserver(mutations => {
            for (let mutation of mutations) {
                if (mutation.type === 'childList') {
                    mutation.addedNodes.forEach(node => {
                        if (node.nodeType === 1) {
                            // New upsell div?
                            if (node.className && (
                                node.className.includes('relative') &&
                                node.className.includes('z-10') &&
                                node.className.includes('p-3')
                            )) {
                                node.remove();
                                console.log('🛡️ SHIELD: Upsell threat destroyed!');
                            }

                            // New ERROR screen?
                            if (node.style && (
                                node.style.height === '100vh' ||
                                (node.style.display === 'flex' && node.style.alignItems === 'center')
                            )) {
                                node.remove();
                                console.log('🛡️ SHIELD: Error screen destroyed!');
                            }

                            // Check for error text in children
                            const h2 = node.querySelector?.('h2');
                            if (h2?.textContent?.includes('Unlock') || h2?.textContent?.includes('Application error')) {
                                node.remove();
                                console.log('🛡️ SHIELD: Threat by text destroyed!');
                            }
                        }
                    });
                }
            }
        });

        if (document.documentElement) {
            shield.observe(document.documentElement, {
                childList: true,
                subtree: true,
                attributes: true,
                attributeFilter: ['class', 'style']
            });
        }
    }

    // ========== STEP 5: CSS REINFORCEMENT ==========
    setInterval(() => {
        const css = document.getElementById('upsell-killer');
        if (!css || css.sheet.cssRules.length === 0) {
            (document.head || document.documentElement).appendChild(killerCSS.cloneNode(true));
        }
    }, 500);

    // ========== INITIAL STRIKE ==========
    setTimeout(huntAndDestroy, 0);
    setTimeout(huntAndDestroy, 50);
    setTimeout(huntAndDestroy, 200);
    setTimeout(huntAndDestroy, 500);
    setTimeout(deployShield, 100);

    // ========== VICTORY CONFIRMATION ==========
    setTimeout(() => {
        console.log(`
        ☠️========== MISSION ACCOMPLISHED ==========
        ✅ Upsell Target: div.relative.z-10.p-3.sm:p-4 ✓
        ✅ ERROR Screen: height: 100vh + "Application error" ✓
        ✅ CSS: Deployed ✓
        ✅ Assault: 10ms intervals ✓
        ✅ Shield: Active ✓
        ✅ Total Kills: ${killCount}
        ☠️ NO SURVIVORS - CLEAN PAGE!
        `);
    }, 3000);

})();