Auto click Claim Button

自動點擊所有帶有 "Claim" 字眼的按鈕,直到按鈕可用為止,並等待 CAPTCHA 解決。

  1. // ==UserScript==
  2. // @name Auto click Claim Button
  3. // @namespace AutoClickClaimButton
  4. // @version 1.4
  5. // @description 自動點擊所有帶有 "Claim" 字眼的按鈕,直到按鈕可用為止,並等待 CAPTCHA 解決。
  6. // @author Yueei
  7. // @match *://*/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function () {
  13. 'use strict';
  14.  
  15. // 檢查 CAPTCHA 是否存在
  16. function checkCaptcha() {
  17. const captchaSelectors = [
  18. "iframe[src*='recaptcha']",
  19. ".g-recaptcha",
  20. ".h-captcha",
  21. ".turnstile",
  22. "[data-sitekey]"
  23. ];
  24.  
  25. return captchaSelectors.some(selector => document.querySelector(selector));
  26. }
  27.  
  28. // 自動點擊 Claim 按鈕的函數
  29. function clickClaimButton() {
  30. console.log('檢測並嘗試點擊 Claim 按鈕...');
  31. const buttons = Array.from(document.querySelectorAll("button, a"));
  32. const claimButton = buttons.find(btn => {
  33. const text = btn.textContent.trim().toLowerCase();
  34. return (
  35. text.includes('claim') && // 包含 "claim"
  36. !btn.disabled // 按鈕未禁用
  37. );
  38. });
  39.  
  40. if (claimButton) {
  41. claimButton.click();
  42. console.log(`已成功點擊 Claim 按鈕: ${claimButton.textContent.trim()}`);
  43. } else {
  44. console.log('尚未找到可用的 Claim 按鈕,等待...');
  45. }
  46. }
  47.  
  48. // 主函數,定期執行檢查
  49. function startProcess() {
  50. console.log('自動點擊腳本已啟動,正在監控 Claim 按鈕...');
  51. setInterval(() => {
  52. if (!checkCaptcha()) { // 如果沒有 CAPTCHA,嘗試點擊 Claim 按鈕
  53. clickClaimButton();
  54. } else {
  55. console.log('檢測到 CAPTCHA,等待解決...');
  56. }
  57. }, 10000); // 每 10 秒執行一次檢查
  58. }
  59.  
  60. // 啟動腳本
  61. startProcess();
  62. })();