Greasy Fork

MediaFire Batch Downloader

Batch download files from a MediaFire folder

目前为 2024-12-02 提交的版本。查看 最新版本

// ==UserScript==
// @name         MediaFire Batch Downloader
// @namespace    http://tampermonkey.net/
// @include     http://www.mediafire.com/folder/*
// @include     https://www.mediafire.com/folder/*
// @include     http://www.mediafire.com/file/*
// @include     https://www.mediafire.com/file/*
// @version      0.2
// @description  Batch download files from a MediaFire folder
// @author       ShadowLin / Update by Dwelling9512
// @license      GNU GPL v3
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    let linkSet = new Set();

    function findAll() {
        var listItems = document.querySelectorAll('#main_list > li');
        var found = false;
        var listSize = linkSet.size;
        for (var i = 0; i < listItems.length; i++) {
            var link = listItems[i].querySelector('a');
            if (link) {
                linkSet.add(link.href);
                if (linkSet.size > listSize) {
                    found = true;
                }
            }
        }

        var newLinks = linkSet.size - listSize;
        listSize = linkSet.size;

        if (found) {
            window.scrollBy(0,60*newLinks);
            //console.log("MORE!");
            //console.log(newLinks);
            var delay = 500 + (Math.random() * 2000);
            setTimeout(function() {
                findAll();
            }, delay);
        } else {
            console.log("Total Found:");
            console.log(listSize);
            startDownload();
        }
    }

    function startDownload() {
        var i = 0;
        for (const link of linkSet) {
            var delay = (3000 * i) + (Math.random() * 2000);
            setTimeout(function() {
                window.open(link, '_blank');
            }, delay);
            i++;
        }
    }

    var upgradeButtonFrame = document.querySelector('.upgrade_button_frame');
    if (upgradeButtonFrame) {
        var button = document.createElement('button');
        button.textContent = 'DOWNLOAD ALL';
        button.classList.add('Btn', 'Btn--greenUpgrade');
        button.style.backgroundColor = '#33CC66';
        button.style.color = '#222835';
        button.addEventListener('click', findAll);
        upgradeButtonFrame.parentNode.replaceChild(button, upgradeButtonFrame);
    }
})();

(function() {
    'use strict';

    var input = document.querySelector('.download_link .input');
    if (input) {
        var dl = input.getAttribute('href');
        console.log(dl);
        location.replace(dl);

        var set = setInterval(closeWindows, 1000 * 5);

        function closeWindows() {
            window.close();
            clearInterval(set);
        }
    } else {
        console.error('Could not find download link');
    }
})();