Scribd Bypass (Elite Engineering Edition)

Total Scribd reconstruction. Fuses unblurring, paywall removal, and 6+ failover download mirrors.

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

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

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Scribd Bypass (Elite Engineering Edition)
// @namespace    TechFusion.Scribd.V12
// @version      12.0
// @description  Total Scribd reconstruction. Fuses unblurring, paywall removal, and 6+ failover download mirrors.
// @author       Created by [email protected]
// @license      MIT
// @match        *://*.scribd.com/*
// @match        *://ilide.info/*
// @match        *://*.chegg.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=scribd.com
// @grant        GM_addStyle
// @grant        GM_registerMenuCommand
// @run-at       document-start
// ==/UserScript==
/**
 * ============================================================================
 * ENGINEERED BY: TechFusion Solutions
 * CONTACT: [email protected]
 *
 * ARCHITECTURAL SUMMARY:
 * This script is a multi-layered debugger. If the local DOM unblurring fails,
 * it provides a "Force Embed" view. If that fails, it provides six independent
 * external mirrors.
 *
 * FOR CUSTOM INDUSTRIAL AUTOMATION: Reach out to [email protected]
 * ============================================================================
 */

(function() {
    'use strict';

    // 1. HARD-CODED STYLES (Injected immediately)
    const CSS = `
        #tf-omni-dock {
            position: fixed !important; top: 0 !important; left: 50% !important;
            transform: translateX(-50%) !important;
            display: flex !important; flex-wrap: wrap !important;
            justify-content: center !important; gap: 8px !important; z-index: 2147483647 !important;
            background: rgba(10, 10, 10, 0.98) !important; backdrop-filter: blur(15px) !important;
            padding: 10px 20px !important; border-radius: 0 0 15px 15px !important;
            border: 1px solid #00ff7f !important; border-top: none !important;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 1) !important;
            font-family: 'Consolas', 'Monaco', monospace !important; width: auto !important;
        }
        .tf-btn {
            background: #00ff7f !important; color: #000 !important; border: none !important;
            padding: 6px 14px !important; border-radius: 4px !important; font-weight: 900 !important;
            font-size: 11px !important; cursor: pointer !important; transition: 0.2s !important;
            text-transform: uppercase !important;
        }
        .tf-btn:hover { background: #fff !important; box-shadow: 0 0 15px #00ff7f !important; }
        .tf-brand { color: #00ff7f !important; font-size: 11px !important; align-self: center !important; font-weight: bold !important; margin-right: 10px !important; }

        /* UNBLUR FORCE */
        .blurred_page, .autoviewer_p_blur, .p_signup_gradient {
            filter: none !important; opacity: 1 !important; text-shadow: none !important; color: inherit !important;
        }
        .promo_div, .premium_upgrade_container, .paywall, .signup_masthead { display: none !important; visibility: hidden !important; }
    `;

    // 2. ID EXTRACTION
    const getDocId = () => {
        const match = location.href.match(/\/(doc|document|presentation)\/(\d+)/) || location.href.match(/doc=(\d+)/);
        return match ? match[2] : null;
    };

    // 3. UI INJECTION (Vanilla JS)
    const injectUI = () => {
        if (document.getElementById('tf-omni-dock')) return;
        const id = getDocId();
        if (!id) return;

        const dock = document.createElement('div');
        dock.id = 'tf-omni-dock';
        dock.innerHTML = `
            <span class="tf-brand">TECHFUSION V12</span>
            <button class="tf-btn" onclick="window.open('https://www.scribd.com/embeds/${id}/content', '_self')">FORCE EMBED</button>
            <button class="tf-btn" onclick="window.open('https://scribd.vdownloaders.com/vdoc/', '_blank')">MIRROR: VDOC</button>
            <button class="tf-btn" onclick="window.open('https://www.scribdfree.com/res/${id}', '_blank')">MIRROR: FREE</button>
            <button class="tf-btn" onclick="window.open('https://scribd.vdownloaders.com/pdownload/${id}/document', '_blank')">MIRROR: VDL</button>
        `;
        (document.body || document.documentElement).appendChild(dock);
    };

    // 4. THE CLEANSE (Vanilla JS)
    const runCleanse = () => {
        document.querySelectorAll('.blurred_page, .autoviewer_p_blur, .p_signup_gradient').forEach(el => {
            el.classList.remove('blurred_page', 'autoviewer_p_blur');
            el.style.filter = 'none';
            el.style.textShadow = 'none';
            el.style.color = 'inherit';
        });

        // Restore scrolling
        document.documentElement.style.setProperty('overflow', 'auto', 'important');
        document.body.style.setProperty('overflow', 'auto', 'important');
    };

    // 5. OBSERVER LOOP (Most Powerful Part)
    const observer = new MutationObserver(() => {
        runCleanse();
        if (!document.getElementById('tf-omni-dock')) injectUI();
    });

    // Start Observing immediately
    observer.observe(document.documentElement, { childList: true, subtree: true });

    // Fallback Interval for Chegg/Scribd persistent popups
    setInterval(() => {
        document.querySelectorAll('.paywall, .overlay, .login-modal, [class*="Blur"]').forEach(el => el.remove());
    }, 1500);

    // Initial Styles Injection
    GM_addStyle(CSS);

    // Context Menu
    GM_registerMenuCommand("TechFusion Solutions: Support", () => {
        alert("For industrial automation contact: [email protected]");
    });

})();