Get download link for DevUploads

Get download link from devuploads

// ==UserScript==
// @name           Get download link for DevUploads
// @name:vi        Lấy link tải DevUploads
// @namespace      DevUploads
// @version        25.02.03.c
// @description    Get download link from devuploads
// @description:vi Scripts lấy link tải DevUploads
// @author         Darias
// @icon           https://www.google.com/s2/favicons?sz=128&domain=devuploads.com
// @homepage       https://xem.li/DevUl
// @match          https://devuploads.com/*
// @match          https://djxmaza.in/*
// @grant          none
// @run-at         document-start
// ==/UserScript==

(function() {
    'use strict';

    // Ngăn chặn script ẩn nút download
    const originalSetTimeout = window.setTimeout;
    window.setTimeout = function(callback, delay) {
        if (typeof callback === 'function' && callback.toString().includes('style.display')) {
            // Bỏ qua các setTimeout liên quan đến việc ẩn/hiện elements
            return;
        }
        return originalSetTimeout(callback, delay);
    };

    // Theo dõi và ngăn chặn thay đổi style.display
    const observer = new MutationObserver((mutations) => {
        mutations.forEach((mutation) => {
            if (mutation.target.id === 'dlndiv' && mutation.type === 'attributes' && mutation.attributeName === 'style') {
                mutation.target.style.display = 'block';
            }
        });
    });

    // Hàm tìm link APK trong mã nguồn
    function findApkLink() {
        // Tìm trong scripts
        const scripts = document.getElementsByTagName('script');
        let apkLink = '';
        
        // Tìm theo nhiều pattern khác nhau
        const patterns = [
            /window\.open\('([^']*\.apk)'[^)]*\)/,
            /href="([^"]*\.apk)"/,
            /'([^']*\.apk)'/,
            /["']([^"']*?\/d\/[^"']*?\/[^"']*?\.apk)["']/
        ];

        // Tìm trong scripts
        for(let script of scripts) {
            for(let pattern of patterns) {
                const match = script.innerHTML.match(pattern);
                if(match && match[1]) {
                    apkLink = match[1];
                    return apkLink;
                }
            }
        }

        // Tìm trong toàn bộ HTML nếu không tìm thấy trong scripts
        const htmlContent = document.documentElement.innerHTML;
        for(let pattern of patterns) {
            const match = htmlContent.match(pattern);
            if(match && match[1]) {
                apkLink = match[1];
                return apkLink;
            }
        }

        return apkLink;
    }

    // Hàm tạo nút tải
    function createDownloadButton(apkLink) {
        let dlndiv = document.getElementById('dlndiv');
        if(!dlndiv) {
            dlndiv = document.createElement('div');
            dlndiv.id = 'dlndiv';
            dlndiv.className = 'text-center mb-4';
            
            // Chèn vào các vị trí có thể
            const possibleContainers = [
                '.download-page',
                '.container',
                'main',
                'body'
            ];

            let container;
            for(let selector of possibleContainers) {
                container = document.querySelector(selector);
                if(container) break;
            }

            if(container) {
                container.insertBefore(dlndiv, container.firstChild);
            }
        }

        // Tạo và cấu hình nút tải với style bảo vệ
        dlndiv.innerHTML = `
            <img src="https://devuploads.com/images/ins/download_now_en.png" 
                 style="cursor:pointer; max-width:240px; display:block !important; margin:auto; 
                        visibility:visible !important; opacity:1 !important;" 
                 onclick="window.open('${apkLink}', '_blank')"
                 title="Click to download APK directly">
        `;

        // Theo dõi thay đổi của dlndiv
        observer.observe(dlndiv, {
            attributes: true,
            attributeFilter: ['style']
        });

        // Thêm style bảo vệ
        const style = document.createElement('style');
        style.textContent = `
            #dlndiv {
                display: block !important;
                visibility: visible !important;
                opacity: 1 !important;
                position: relative !important;
                z-index: 999999 !important;
            }
            #dlndiv img {
                display: block !important;
                visibility: visible !important;
                opacity: 1 !important;
            }
        `;
        document.head.appendChild(style);
    }

    // Hàm xóa các element không mong muốn
    function removeUnwantedElements() {
        const elementsToRemove = [
            '#adBlocked',
            '#Blocked',
            '.alert-danger',
            '#plzw',
            'script[src*="adsbygoogle"]',
            'script[src*="pagead2"]',
            'script[src*="ad-center"]'
        ];

        elementsToRemove.forEach(selector => {
            const elements = document.querySelectorAll(selector);
            elements.forEach(element => element.remove());
        });
    }

    // Hàm chính
    function main() {
        // Chạy ngay khi có thể
        const checkAndCreate = () => {
            const apkLink = findApkLink();
            if(apkLink) {
                createDownloadButton(apkLink);
                removeUnwantedElements();
            }
        };

        // Chạy nhiều lần để đảm bảo
        checkAndCreate();
        document.addEventListener('DOMContentLoaded', checkAndCreate);
        window.addEventListener('load', checkAndCreate);

        // Chạy định kỳ trong 5 giây đầu
        let attempts = 0;
        const interval = setInterval(() => {
            checkAndCreate();
            attempts++;
            if(attempts >= 10) clearInterval(interval);
        }, 500);
    }

    // Khởi chạy script
    main();
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址