Datanodes Auto Downloader

Datanodes Auto Downloader by Games4u

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!)

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!)

// ==UserScript==
// @name         Datanodes Auto Downloader
// @namespace    http://tampermonkey.net/
// @version      2.0
// @description  Datanodes Auto Downloader by Games4u
// @author       Games4u.Org
// @match        https://datanodes.to/*
// @icon         https://t3.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=http://datanodes.to&size=64
// @grant        GM_download
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // Function to initiate the download and close the tab
    function initiateDownloadAndCloseTab() {
        // Find the first submit button and click it immediately
        var firstButton = document.querySelector('button[type="submit"]');
        if (firstButton) {
            firstButton.click();
            console.log("First button clicked immediately");

            // Wait briefly to ensure DOM updates (adjust if necessary)
            setTimeout(function() {
                var form = document.createElement('form');
                form.name = "F1";
                form.method = "POST";
                form.className = "m-0";
                form.action = "";

                // Extract the file ID dynamically from the hidden input
                var fileIdInput = document.querySelector('input[name="id"]');
                var fileId = fileIdInput ? fileIdInput.value : "";

                // Extract the file name dynamically from the hidden input
                var fileNameInput = document.querySelector('input[name="fname"]');
                var fileName = fileNameInput ? fileNameInput.value : "";

                form.innerHTML = `
                    <input type="hidden" name="op" value="download2">
                    <input type="hidden" name="id" value="${fileId}">
                    <input type="hidden" name="rand">
                    <input type="hidden" name="referer" value="">
                    <input type="hidden" name="method_free" value="Free Download >>">
                    <input type="hidden" name="method_premium">
                    <div class="flex gap-3" style="display: none;">
                        <button type="button" class="px-3 py-2.5 font-semibold bg-blue-500 rounded-lg text-white text-xs hover:text-white hover:bg-blue-800">
                            <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-5 h-5">
                                <path stroke-linecap="round" stroke-linejoin="round" d="M17.25 8.25L21 12m0 0l-3.75 3.75M21 12H3"></path>
                            </svg>
                        </button>
                    </div>
                    <button type="submit" class="py-3 relative shadow px-6 hover:opacity-90 rounded-lg bg-white text-sm font-medium text-blue-600 w-full flex items-center justify-between">
                        Continue
                        <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6">
                            <path stroke-linecap="round" stroke-linejoin="round" d="M7.5 7.5h-.75A2.25 2.25 0 004.5 9.75v7.5a2.25 2.25 0 002.25 2.25h7.5a2.25 2.25 0 002.25-2.25v-7.5a2.25 2.25 0 00-2.25-2.25h-.75m-6 3.75l3 3m0 0l3-3m-3 3V1.5m6 9h.75a2.25 2.25 0 012.25 2.25v7.5a2.25 2.25 0 01-2.25 2.25h-7.5a2.25 2.25 0 01-2.25-2.25v-.75"></path>
                        </svg>
                    </button>
                `;

                // Replace existing button with new form
                var firstButtonParent = firstButton.parentElement;
                firstButtonParent.replaceWith(form);

                // Submit the form after a brief delay to ensure DOM updates
                setTimeout(function() {
                    form.submit();
                    console.log("Form submitted immediately");

                    // Close the tab after a short delay (adjust as needed)
                    setTimeout(function() {
                        window.close();
                        console.log("Tab closed");
                    }, 2000); // Close tab after 2 seconds (adjust as needed)
                }, 500); // Submit form after 0.5 seconds (adjust as needed)
            }, 200); // Replace button with form after 0.2 seconds (adjust as needed)
        } else {
            console.log("First button not found, proceeding to the next step...");
            // Implement logic to proceed to the next step if needed
        }
    }

    // Execute the function
    initiateDownloadAndCloseTab();
})();