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

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

Bu script direkt olarak kurulamaz. Başka scriptler için bir kütüphanedir ve meta yönergeleri içerir // @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

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği yüklemek için Tampermonkey gibi bir uzantı yüklemeniz gerekir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği indirebilmeniz için ayrıca Tampermonkey gibi bir eklenti kurmanız gerekmektedir.

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

Bu stili yüklemek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için Stylus gibi bir uzantı kurmanız gerekir.

Bu stili yükleyebilmek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı kurmanız gerekir.

Bu stili yükleyebilmek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

(Zateb bir user-style yöneticim var, yükleyeyim!)

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

})();