Copy Magnet Links

Copy all magnet links on the page to the clipboard

// ==UserScript==
// @name         Copy Magnet Links
// @namespace    https://lynelluo.github.io/
// @version      0.1
// @description  Copy all magnet links on the page to the clipboard
// @author       lynel0625
// @match        *://*/*
// @grant        none
// @license      MIT
// ==/UserScript==


(function() {
    // Function to copy magnet links to clipboard
    function copyMagnetLinks() {
        var magnets = [];
        var links = document.querySelectorAll('a[href^="magnet:"]');

        links.forEach(function(link) {
            magnets.push(link.href);
        });

        if (magnets.length > 0) {
            var magnetLinks = magnets.join("\n");

            var textarea = document.createElement("textarea");
            textarea.value = magnetLinks;
            document.body.appendChild(textarea);
            textarea.select();
            document.execCommand("copy");
            document.body.removeChild(textarea);

            showNotification("Copied magnet links:\n" + magnetLinks);
        } else {
            showNotification("No magnet links found.");
        }
    }

    // Function to show a notification
    function showNotification(message) {
        var notification = document.createElement("div");
        notification.innerText = message;
        notification.style.position = "fixed";
        notification.style.bottom = "50px";
        notification.style.left = "10px";
        notification.style.backgroundColor = "#333";
        notification.style.color = "#fff";
        notification.style.padding = "10px";
        notification.style.borderRadius = "5px";
        notification.style.zIndex = 1001;
        notification.style.fontSize = "14px";
        notification.style.opacity = "0.9";
        document.body.appendChild(notification);

        // Automatically remove the notification after 2 seconds
        setTimeout(function() {
            document.body.removeChild(notification);
        }, 2000);
    }


    // Create a button to trigger the copy action
    var button = document.createElement("button");
    button.innerText = "Copy Magnet Links";
    button.style.position = "fixed";
    button.style.bottom = "10px";
    button.style.left = "10px"; // Place the button in the bottom-left corner
    button.style.zIndex = 1000; // Make sure the button is on top of other elements
    document.body.appendChild(button);

    // Add event listener for the button
    button.addEventListener("click", function() {
        copyMagnetLinks();
    });
})();