Greasy Fork is available in English.

temuPmPa.user.js

temuPmPa.user

สคริปต์นี้ไม่ควรถูกติดตั้งโดยตรง มันเป็นคลังสำหรับสคริปต์อื่น ๆ เพื่อบรรจุด้วยคำสั่งเมทา // @require https://update.greasyfork.org/scripts/525124/1528093/temuPmPauserjs.js

// 创建面板元素
let panel = $("<div>", {
  css: {
    position: "absolute",
    border: "1px solid #ccc",
    padding: "10px",
    backgroundColor: "#f9f9f9",
    top: "30%",
    right: "30%",
    zIndex: "9999",
  }
});

// 创建复选框元素
let autoRefuseCkx = $("<input>", {
  type: "checkbox",
  name: "pmpaAutoRefuse",
  value: "pmpaAutoRefuse"
});

// 创建标签元素
let label = $("<label>", {
  for: "pmpaAutoRefuse",
  text: " 自动-我不接受"
});


// 定义定时器任务队列类
class TimerTaskQueue {
  constructor() {
    this.isRunning = false;
  }

  async start() {
    if (this.isRunning) return;
    this.isRunning = true;
    
    try {
      while (this.isRunning) {
        // 第一个事件
        if (!await this.refuseEvt()) {
          break;
        }
        // 第二个事件
        await this.confirmEvt();
        // 第三个事件
        await this.refreshEvt();        
        await new Promise(resolve => setTimeout(resolve, 2000)); 

      }
    } catch {
      
    }
  }

  stop() {
    this.isRunning = false;
  }

  // 第一个事件:点击拒绝按钮,没有则结束任务队列
  refuseEvt() {
    return new Promise(resolve => {
      let isClicked = false; // 用于标记是否已经点击过包含“拒绝”的链接
      $('div[data-testid="beast-core-table"] a').each(function() {
        let linkText = $(this).text();
        if (linkText.includes("拒绝")) {
          if (!isClicked) {
            // 只有在还未点击过的情况下执行点击操作
            $(this).get(0).click();
            console.log("点击了拒绝按钮");
            isClicked = true; // 标记为已经点击过
            resolve(true);
          }
        }
      });
      if (!isClicked) {
        // 如果遍历完所有链接都没有点击过,说明未找到拒绝按钮
        console.log("未找到拒绝按钮,结束任务队列");
        resolve(false);
      }
    });
  }

  // 第二个事件:点击拒绝按钮弹出模态框,随机 2 - 5s 点击确定按钮
  confirmEvt() {
    return new Promise(resolve => {
      const randomTime = getRandomNum(2, 5),
      customLabelTxt = "我不接受",
      refuseBtnTxt = "确认",
      cfmBtnTxt = "确认";

      setTimeout(() => {
        // 全部拒绝
        $('label[data-testid="beast-core-radio"]')
          .filter((_, el) => $(el).text() === customLabelTxt)
          .click();
          
          let textareaEle = $(
            'div[data-testid="beast-core-modal-body"] textarea[data-testid="beast-core-textArea-htmlInput"]:visible'
          );
          if (textareaEle.get(0)) {
            fillFormInput(textareaEle.get(0), getRandomLeftKeyboardChar());
          }

        $('div[data-testid="beast-core-modal"] button')
          .filter((_, el) => $(el).text() === cfmBtnTxt ||$(el).text() === refuseBtnTxt)
          .click();


        console.log(`等待 ${randomTime} 秒后点击了确定按钮`);

        resolve();
      }, randomTime * 1000);
    });
  }

  // 第三个事件:随机等待 5 - 10s 点击刷新按钮
  refreshEvt() {
    return new Promise(resolve => {
      const randomTime = getRandomNum(5, 10);
      const sbtBtnTxt = "查询";
      setTimeout(() => {
        console.log(`等待 ${randomTime} 秒后点击了${sbtBtnTxt}按钮`);

        $('form div[data-testid="beast-core-grid-row"] button')
          .filter((_, el) => $(el).text() === sbtBtnTxt)
          .click();

        resolve();
      }, randomTime * 1000);
    });
  }
}

const taskQueue = new TimerTaskQueue();

autoRefuseCkx.on("change", function() {
  if (this.checked) {
    // GM_setValue("pmpaAutoRefuse", "y");
    // 这里可以添加复选框选中时要执行的其他操作
    taskQueue.start();
  } else {
    // GM_setValue("pmpaAutoRefuse", "n");
    // 这里可以添加复选框取消选中时要执行的其他操作
    taskQueue.stop();
  }
});

// 将复选框和标签添加到面板中
panel.append(autoRefuseCkx).append(label);

// 将面板添加到页面的 body 中
$("body").append(panel);