磁力/电驴/迅雷链接复制工具

复制网页里所有磁力/电驴/迅雷链接

// ==UserScript==
// @name        磁力/电驴/迅雷链接复制工具
// @namespace    https://leochan.me
// @version      v1.1.0
// @description  复制网页里所有磁力/电驴/迅雷链接
// @author       Leo
// @match        *://*/*
// @license      GPLv2
// @icon         https://www.google.com/s2/favicons?sz=64&domain=leochan.me
// @require      https://update.gf.qytechs.cn/scripts/470018/1214590/%E7%BD%91%E9%A1%B5%E9%87%8C%E9%9D%A2%E7%AE%80%E5%8D%95%E7%9A%84%E6%8F%90%E9%86%92%E8%83%BD%E5%8A%9B.js
// @require      https://update.gf.qytechs.cn/scripts/549000/1658058/%E7%BD%91%E9%A1%B5%E9%87%8C%E9%9D%A2%E5%A4%8D%E5%88%B6%E5%86%85%E5%AE%B9.js
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    function extractMagnetsFromWebPage(html) {
        const magnetRegex = /magnet:\?[^\s"'<>]+/gi;
        const magnets = html.match(magnetRegex) || [];
        const xtValues = [];
        magnets.forEach(magnet => {
            const xtRegex = /xt=(urn:btih:[a-fA-F0-9]{40})/i;
            const match = magnet.match(xtRegex);
            if (match && match[1] && !xtValues.includes("magnet:?xt=" + match[1])) {
                xtValues.push("magnet:?xt=" + match[1]);
            }
        });
        return xtValues;
    }

    function extractED2KFromHTML(html) {
        const ed2kRegex = /ed2k:\/\/\|file\|[^|]+\|\d+\|[A-Fa-f0-9]{32}\|\//g;
        const matches = html.match(ed2kRegex);
        if(matches && matches.length > 0){
            return [...new Set(matches)];
        }
        return [];
    }

    function extractThunderFromHTML(html) {
        const thunderRegex = /thunder:\/\/[A-Za-z0-9+/=]+/g;
        const matches = html.match(thunderRegex);
        if(matches && matches.length > 0){
            return [...new Set(matches)];
        }
        return [];
    }

    function addCopyButton(xtValues, appendData) {
        appendData = appendData || false;
        const clickBtn = document.createElement('a');
        clickBtn.style.cssText = "position:fixed;z-index:99999999;right:15px;color:#fff;padding:10px 15px;font-size:12px;border-radius:5px;overflow:hidden;cursor:pointer;text-decoration:none;" + (appendData ? "background-image:linear-gradient(to right,#b8cbb8 0%,#b8cbb8 0%,#b465da 0%,#cf6cc9 33%,#ee609c 66%,#ee609c 100%);bottom:20%;" : "background-image:linear-gradient(to right,#4facfe 0%,#00f2fe 100%);bottom:30%;");
        clickBtn.textContent = appendData ? "追加所有磁力/电驴/迅雷链接" : "复制所有磁力/电驴/迅雷链接";
        clickBtn.addEventListener('click', async() => {
            let oldXtValues = await navigator.clipboard.readText();
            if(appendData && oldXtValues.length > 0){
                xtValues = xtValues.concat(oldXtValues.split('\n'));
            }
            webPageCopyToClipboard(xtValues.join('\n')).then(() => {
                webPageShowMessage(appendData ? "追加成功了" : "复制成功了")
            });
        });
        document.body.appendChild(clickBtn);
    }

    function addCopyButtons() {
        const html = document.documentElement.outerHTML;
        let xtValues = extractMagnetsFromWebPage(html);
        console.log("xt", xtValues, extractED2KFromHTML(html), extractThunderFromHTML(html));
        xtValues = xtValues.concat(extractED2KFromHTML(html));
        xtValues = xtValues.concat(extractThunderFromHTML(html));
        console.log("ee", xtValues);
        if(xtValues.length === 0){
            return;
        }
        addCopyButton(xtValues);
        addCopyButton(xtValues, true);
    }

    addCopyButtons();
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址