Allows batch download of all displayed results in one single click.
目前為
// ==UserScript==
// @name [nyaa.si] Batch Download
// @description Allows batch download of all displayed results in one single click.
// @author MetalTxus
// @version 1.1.0
// @include /^https?:\/\/\S*nyaa.si\S*/
// @require http://code.jquery.com/jquery-3.2.1.min.js
// @icon https://avatars3.githubusercontent.com/u/28658394?s=44
// @namespace https://greasyfork.org/users/8682
// @grant GM_xmlhttpRequest
// ==/UserScript==
(() => {
'use strict';
const DOWNLOAD_INTERVAL = 150;
const jQuery = window.jQuery;
const magnets = jQuery('a[href*="magnet:"]');
const appendBatchDownloadButton = () => {
const fileCount = magnets.length;
if (fileCount) {
const downloadAll = () => {
downloadNext(magnets.toArray());
}
const downloadNext = (anchors) => {
const anchor = anchors.pop();
const url = anchor.href.split('&dn=')[0];
const magnetTab = window.open(url);
setTimeout(() => magnetTab.close(), DOWNLOAD_INTERVAL);
if (anchors.length) {
setTimeout(() => downloadNext(anchors), DOWNLOAD_INTERVAL);
}
}
jQuery('.torrent-list').append(
`<tr style="background: none;">
<td colspan="9" align="center">
<a title="Download all" href class="mt-batch-download">
< Download all (${fileCount}) >
<br>
<i class="fa fa-fw fa-magnet"></i>
</a>
</td>
</tr>`
);
jQuery('.mt-batch-download').click(event => {
event.preventDefault();
downloadAll();
});
}
}
const initialize = () => {
appendBatchDownloadButton();
}
initialize();
})();