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

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

Dit script moet niet direct worden geïnstalleerd - het is een bibliotheek voor andere scripts om op te nemen met de meta-richtlijn // @require https://update.greasyfork.org/scripts/574222/1800763/%F0%9F%97%91%EF%B8%8F%20Pro%20Upsell%20Remover%20%28Layout%20Fixed%20%2B%20Error%20Killer%29.js

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Advertisement:

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

Advertisement:

// ==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);

})();