您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
batch select magnet in a webpage (dmhy, nyaa), and then copy to clipboard (ctrl+c), new page(ctrl+b) for download
- // ==UserScript==
- // @name batch magnet selection
- // @name:zh 磁力链接批量选择
- // @namespace http://tampermonkey.net/
- // @version v0.1.1
- // @description batch select magnet in a webpage (dmhy, nyaa), and then copy to clipboard (ctrl+c), new page(ctrl+b) for download
- // @description:zh 批量选择bt站上当前页面上(动漫花园, nyaa)的批量链接, 并自动复制到剪贴板(ctrl+c)、新打开页面(ctrl+b) 用于下载
- // @author devseed
- // @match *://*.dmhy.org/*
- // @match *://*.nyaa.si/*
- // @icon https://www.dmhy.org/favicon.ico
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- function add_checkbox() {
- var doms = document.querySelectorAll('a[href^=magnet]');
- for (let i=0; i< doms.length; i++) {
- let dom = doms[i];
- let html = `<input type="checkbox" checked="true" href="${dom.href}"/>`;
- dom.insertAdjacentHTML("afterend", html);
- }
- };
- function add_button() {
- document.body.insertAdjacentHTML("afterbegin", `<input type="button" value="SendClipboard" onclick="send_magnets_clipboard()" style="position fixed; margin:0px 10px 0px 0px">`);
- document.body.insertAdjacentHTML("afterbegin", `<input type="button" value="SendNewpage" onclick="send_magnets_newpage()" style="position fixed; margin:0px 10px 0px 0px">`);
- document.body.insertAdjacentHTML("afterbegin", `<input type="button" value="SelectAll" onclick="check_magnets_all(true)" style="position fixed; margin:0px 10px 0px 0px">`);
- document.body.insertAdjacentHTML("afterbegin", `<input type="button" value="SelectNone" onclick="check_magnets_all(false)" style="position fixed; margin:0px 10px 0px 0px">`);
- };
- function get_magnets(only_checked=true) {
- var magnets = [];
- var doms = document.querySelectorAll('input[href^=magnet]');
- for (let i=0; i< doms.length; i++) {
- let dom = doms[i];
- if (dom.checked || !only_checked) {
- magnets.push(dom.getAttribute("href"));
- }
- }
- return magnets;
- }
- async function send_magnets_clipboard() {
- var magnets = get_magnets();
- if(!magnets || magnets.length == 0) {
- alert("no selected magnent!");
- return;
- }
- const text = magnets.join("\n");
- try {
- await navigator.clipboard.writeText(text);
- } catch (error) {
- console.error(error.message);
- }
- }
- async function send_magnets_newpage() {
- var magnets = get_magnets();
- if(!magnets || magnets.length == 0) {
- alert("no selected magnent!");
- return;
- }
- const html = magnets.join("<br>")
- const blob = new Blob([html], { type: "text/html" });
- const bloburl = URL.createObjectURL(blob);
- window.open(bloburl, "_blank");
- }
- async function check_magnets_all(checked) {
- var doms = document.querySelectorAll('input[href^=magnet]');
- for (let i=0; i< doms.length; i++) {
- let dom = doms[i];
- dom.checked = checked;
- }
- }
- document.onkeydown = async (e) => {
- if (e.ctrlKey && e.key=='c') {
- send_magnets_clipboard();
- }
- else if (e.ctrlKey && e.key=='b') {
- send_magnets_newpage();
- }
- }
- window.onload = async (e) => {
- add_checkbox();
- add_button();
- };
- window.send_magnets_clipboard = send_magnets_clipboard;
- window.send_magnets_newpage = send_magnets_newpage;
- window.check_magnets_all = check_magnets_all;
- })();