DevUploads Complete Auto Bypass

Auto bypass devuploads

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         DevUploads Complete Auto Bypass
// @namespace    http://tampermonkey.net/
// @version      2.0
// @description  Auto bypass devuploads 
// @author       Shiva
// @match        *://devuploads.com/*
// @match        *://*.devuploads.com/*
// @match        *://djxmaza.in/*
// @match        *://*.djxmaza.in/*
// @grant        GM_xmlhttpRequest
// @connect      devuploads.com
// @run-at       document-end
// @license      GPL-3.0-only
// ==/UserScript==

(function() {
    'use strict';

    console.log('[DevUploads Complete] Script loaded');

    // ============ UTILITY FUNCTIONS ============

    function randomString(length = 10) {
        const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
        let result = '';
        for (let i = 0; i < length; i++) {
            result += chars.charAt(Math.floor(Math.random() * chars.length));
        }
        return result;
    }

    function showStatus(message, color) {
        let status = document.getElementById('devuploads-bypass-status');
        if (!status) {
            status = document.createElement('div');
            status.id = 'devuploads-bypass-status';
            status.style.cssText = `
                position: fixed;
                top: 20px;
                right: 20px;
                background: ${color};
                color: white;
                padding: 15px 25px;
                border-radius: 10px;
                font-family: Arial, sans-serif;
                font-size: 14px;
                font-weight: bold;
                z-index: 999999;
                box-shadow: 0 4px 12px rgba(0,0,0,0.3);
                transition: all 0.3s ease;
            `;
            document.body.appendChild(status);
        }
        status.style.background = color;
        status.textContent = message;
    }

    // ============ TOKEN BYPASS ============

    function buildTokenData() {
        const randValue = randomString(10);
        const currentTime = Date.now();
        const timezoneOffset = -new Date().getTimezoneOffset();
        const referer = window.location.href;

        let tokenData = "[download]";
        tokenData += `[referer=${referer}]`;
        tokenData += `[rand=${randValue}]`;
        tokenData += "[altk=]";
        tokenData += `[emti=${currentTime}]`;
        tokenData += "[gifnun=0][gifhei=0][gifpos=0][gifvis=0]";
        tokenData += "[wc=doubleclick adsby onerror]";
        tokenData += `[setoff=${timezoneOffset}]`;
        tokenData += '[castyl={"pointerEvents":"auto","display":"block","visibility":"visible"}]';
        tokenData += '[caeven=auto][cadisp=block][cavis=visible]';
        tokenData += '[pc=0][pn=][gsm=]';

        return {
            rand: randValue,
            msg: tokenData
        };
    }

    function sendToken() {
        const tokenData = buildTokenData();

        console.log('[DevUploads Complete] Sending token:', tokenData);
        showStatus('🔄 Sending bypass token...', '#2196F3');

        GM_xmlhttpRequest({
            method: 'POST',
            url: 'https://devuploads.com/token/token.php',
            headers: {
                'Accept': '*/*',
                'Content-Type': 'application/x-www-form-urlencoded',
                'Origin': 'https://djxmaza.in',
                'Referer': window.location.href,
                'User-Agent': navigator.userAgent
            },
            data: `rand=${tokenData.rand}&msg=${encodeURIComponent(tokenData.msg)}`,
            onload: function(response) {
                console.log('[DevUploads Complete] Token response:', response.responseText);
                showStatus('✅ Token accepted!', '#4CAF50');

                // After token, click the buttons
                setTimeout(clickDownloadButtons, 2000);
            },
            onerror: function(error) {
                console.error('[DevUploads Complete] Token error:', error);
                showStatus('⚠️ Token failed, trying buttons...', '#FF9800');
                setTimeout(clickDownloadButtons, 2000);
            }
        });
    }

    // ============ BUTTON CLICKING ============

    function clickDownloadButtons() {
        console.log('[DevUploads Complete] Looking for download buttons...');

        // Step 1: Click "Generate Download Link" button (#gdl)
        const generateBtn = document.querySelector('#gdl');

        if (generateBtn) {
            console.log('[DevUploads Complete] Found "Generate Download Link" button');
            showStatus('🔘 Clicking Generate Link...', '#9C27B0');

            generateBtn.click();

            // Step 2: Wait for "Go to Generated Link" button (#gdlf) to appear
            setTimeout(() => {
                clickGoToLink();
            }, 3000); // Wait 3 seconds for link generation

        } else {
            console.log('[DevUploads Complete] Generate button not found, trying next step...');
            clickGoToLink();
        }
    }

    function clickGoToLink() {
        console.log('[DevUploads Complete] Looking for "Go to Link" button...');

        const goToLinkBtn = document.querySelector('#gdlf');

        if (goToLinkBtn) {
            console.log('[DevUploads Complete] Found "Go to Generated Link" button');
            showStatus('🔘 Clicking Go to Link...', '#9C27B0');

            goToLinkBtn.click();

            showStatus('✅ Download started!', '#4CAF50');

            // Hide status after 3 seconds
            setTimeout(() => {
                const status = document.getElementById('devuploads-bypass-status');
                if (status) status.remove();
            }, 3000);

        } else {
            console.log('[DevUploads Complete] Go to Link button not found yet, retrying...');
            showStatus('⏳ Waiting for download link...', '#FF9800');

            // Retry after 2 seconds
            setTimeout(clickGoToLink, 2000);
        }
    }

    // ============ FALLBACK METHODS ============

    function findAndClickDownload() {
        // Try to find any download-related elements
        const selectors = [
            '#gdl',                    // Generate download link
            '#gdlf',                   // Go to generated link
            'img[src*="generate_download"]',
            'img[src*="go_to_generated"]',
            'a[href*="download"]',
            'button:contains("Download")',
            '.download-btn',
            '#downloadButton'
        ];

        for (const selector of selectors) {
            const el = document.querySelector(selector);
            if (el) {
                console.log('[DevUploads Complete] Found element:', selector);
                el.click();
                return true;
            }
        }

        return false;
    }

    // ============ MONITOR FOR BUTTONS ============

    function monitorForButtons() {
        // Use MutationObserver to detect when buttons appear
        const observer = new MutationObserver((mutations) => {
            const gdl = document.querySelector('#gdl');
            const gdlf = document.querySelector('#gdlf');

            if (gdl && !gdl.dataset.clicked) {
                console.log('[DevUploads Complete] Generate button appeared!');
                gdl.dataset.clicked = 'true';
                showStatus('🔘 Auto-clicking Generate Link...', '#9C27B0');
                setTimeout(() => gdl.click(), 500);
            }

            if (gdlf && !gdlf.dataset.clicked) {
                console.log('[DevUploads Complete] Go to Link button appeared!');
                gdlf.dataset.clicked = 'true';
                showStatus('🔘 Auto-clicking Go to Link...', '#4CAF50');
                setTimeout(() => gdlf.click(), 500);
            }
        });

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

        console.log('[DevUploads Complete] Monitoring for buttons...');
    }

    // ============ MAIN EXECUTION ============

    function init() {
        showStatus('🚀 DevUploads Bypass Active', '#673AB7');

        // Start monitoring for buttons immediately
        monitorForButtons();

        // Send token after 1 second
        setTimeout(() => {
            sendToken();
        }, 1000);

        // Try clicking buttons after 3 seconds (in case they're already there)
        setTimeout(() => {
            clickDownloadButtons();
        }, 3000);

        // Fallback: try to find any download after 8 seconds
        setTimeout(() => {
            if (!document.querySelector('#gdlf[data-clicked="true"]')) {
                console.log('[DevUploads Complete] Using fallback...');
                findAndClickDownload();
            }
        }, 8000);
    }

    // Start when page is ready
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', init);
    } else {
        init();
    }

})();