Greasy Fork is available in English.
#1 Change dl=0 to dl=1 #2 Add Textarea with the list of links and wget preppended (so just cut and paste into the command line)
// ==UserScript== // @name DropBox Link Converter & Mass Downloader w Button // @namespace http://tampermonkey.net/ // @version 0.3 // @description #1 Change dl=0 to dl=1 #2 Add Textarea with the list of links and wget preppended (so just cut and paste into the command line) // @author sharmanhall // @license MIT // @connect greasyfork.org // @connect sleazyfork.org // @connect github.com // @connect openuserjs.org // @match *://*.dropbox.com/* // @grant none // @icon https://cf.dropboxstatic.com/static/images/icons/blue_dropbox_glyph-vflJ8-C5d.png // ==/UserScript== //This updated script adds a button to the page labeled "Convert Links and Download." When the button is clicked, the script scrolls to the bottom of the page to load more links, converts the links to direct download links, and adds a textarea to the page with the list of links. The links are also formatted with `wget` so that they can be used in the command line. The button is temporarily disabled after the links are converted and re-enabled after a few seconds. //Please note that this script is designed to work on Dropbox pages that match the URL pattern specified in the `@match` directive (`*://*.dropbox.com/*`). If you encounter any issues, please make sure that the script is running on the appropriate Dropbox page. (function() { 'use strict'; const SECONDS_TO_WAIT_FOR_SCROLL = 1; // adjust as needed const DOWNLOAD_URL_REPLACEMENT = '?dl=1'; // function to get all link elements function getLinks() { const links = document.querySelectorAll('a.dig-Link.sl-link--file[href*="dl=0"]'); return Array.from(links).map(link => link.getAttribute('href').replace(/\?dl=0$/, DOWNLOAD_URL_REPLACEMENT)); } // function to scroll to the bottom of the page and wait for new links to load async function waitForLinksToLoad() { window.scrollTo(0, document.body.scrollHeight); await new Promise(resolve => setTimeout(resolve, SECONDS_TO_WAIT_FOR_SCROLL * 1000)); } // create an array to hold the links let links = []; // add a button to the page that will convert the links and add the textarea when clicked const convertButton = document.createElement('button'); convertButton.classList.add('dig-Button', 'dig-Button--primary', 'dig-Button--standard', 'convert-links-button'); convertButton.textContent = 'Convert Links and Download'; convertButton.style.position = 'fixed'; convertButton.style.bottom = '20px'; convertButton.style.right = '20px'; convertButton.style.zIndex = '9999'; document.body.appendChild(convertButton); // add a click event listener to the button convertButton.addEventListener('click', async function() { let finished = false; let numLinks = 0; while (!finished) { // scroll to the bottom of the page and wait for new links to load await waitForLinksToLoad(); // get the newly loaded links const newLinks = getLinks().filter(url => !links.includes(url)); links.push(...newLinks); // check if all links have been loaded finished = newLinks.length === 0; numLinks += newLinks.length; } // create and append textarea with the list of links const mycopy = document.createElement("textarea"); mycopy.name = "mycopy"; mycopy.id = "mycopy"; mycopy.maxLength = "50000"; mycopy.cols = "180"; mycopy.rows = "40"; mycopy.value = links.map(link => `wget "${link}";`).join('\n'); document.body.appendChild(mycopy); // disable the button and change the text to indicate that the links have been converted convertButton.disabled = true; convertButton.textContent = `${numLinks} link(s) converted`; // enable the button again after 3 seconds setTimeout(function() { links = []; convertButton.disabled = false; convertButton.textContent = 'Convert Links and Download'; }, 3000); }); })();