Greasy Fork 支持简体中文。

36RAIN_复制链接按钮

提取页面中的链接并添加一个按钮来复制这些链接

// ==UserScript==
// @name         36RAIN_复制链接按钮
// @namespace    http://tampermonkey.net/
// @version      2024-12-02
// @description  提取页面中的链接并添加一个按钮来复制这些链接
// @author       冰红茶真好喝
// @match        http://36rain.com/u.php?action=favor&uid=*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=36rain.com
// @license MIT
// @grant        GM_setClipboard
// @grant        GM_addStyle
// ==/UserScript==

(function () {
  "use strict";

  // 获取并修改所有链接
  function getModifiedLinks() {
    const links = [];
    let index = 2;
    let linkElement;

    // 查找页面中的每个链接,并修改链接地址
    while (
      (linkElement = document.querySelector(
        `#u-contentmain > form > table > tbody > tr:nth-child(${index}) > th > a`
      ))
    ) {
      const originalLink = linkElement.href;
      const modifiedLink = originalLink.replace(
        "http://36rain.com/read.php?tid=",
        "https://rain36-vip.japaneast.cloudapp.azure.com/forum.php?mod=viewthread&tid="
      );
      links.push(modifiedLink);
      index++;
    }

    return links;
  }

  // 创建复制链接按钮
  function createCopyButton() {
    const copyButton = document.createElement("button");
    copyButton.textContent = "复制新站链接";
    // copyButton.className = "btn"; // 设置按钮样式
    copyButton.style.cssText = `
          padding: 10px 20px;
          cursor: pointer;
          background-color: #4CAF50;
          color: white;
          border: none;
          border-radius: 5px;
          margin-right: 10px;
      `;

    // 按钮点击事件:提取链接并复制到剪切板
    copyButton.addEventListener("click", () => {
      const links = getModifiedLinks(); // 获取修改后的链接
      if (links.length > 0) {
        GM_setClipboard(links.join("\n")); // 将链接拼接成一行,复制到剪切板
        alert("链接已复制到剪切板!");
      } else {
        alert("未找到任何链接!");
      }
    });

    return copyButton;
  }

  // 创建打开新站按钮
  function createOpenNewSiteButton() {
    const openButton = document.createElement("button");
    openButton.textContent = "打开新站";
    // openButton.className = "btn"; // 设置按钮样式
    openButton.style.cssText = `
          padding: 10px 20px;
          cursor: pointer;
          background-color: #008CBA;
          color: white;
          border: none;
          border-radius: 5px;
      `;

    // 按钮点击事件:打开新站链接
    openButton.addEventListener("click", () => {
      window.open("https://rain36-vip.japaneast.cloudapp.azure.com/", "_blank");
    });

    return openButton;
  }

  // 插入按钮到页面中
  function insertButtons() {
    const btnContainer = document.querySelector(
      "#u-contentmain > form > center > div"
    );
    if (btnContainer) {
      const copyButton = createCopyButton(); // 创建复制链接按钮
      const openButton = createOpenNewSiteButton(); // 创建打开新站按钮
      btnContainer.appendChild(copyButton); // 将复制按钮添加到页面
      btnContainer.appendChild(openButton); // 将打开新站按钮添加到页面
    }
  }

  // 等待页面加载完成后插入按钮
  window.addEventListener("load", insertButtons);
})();