MediaFire Batch Downloader

Batch download files from a MediaFire folder

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==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');
    }
})();