您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Solves emoji captcha
当前为
// ==UserScript== // @name BitFaucet Captcha Solver Claim + Auto // @namespace https://bitfaucet.net/ // @version 1.5 // @description Solves emoji captcha // @author 👽 // @match https://bitfaucet.net/* // @grant none // @run-at document-idle // @license MIT // ==/UserScript== (function () { 'use strict'; let rewardClicked = false; function solveEmojiCaptcha() { const prompt = document.querySelector('.captcha-prompt[data-id="question-text"]'); if (!prompt) return; const promptText = prompt.textContent.trim(); const match = promptText.match(/click on the\s*:\s*(\w+)/i); if (!match || !match[1]) return; const targetName = match[1].toLowerCase(); const targetGif = `${targetName}.gif`; console.log(`[Captcha] Looking for: ${targetGif}`); const emojiImages = document.querySelectorAll('.captcha-item img'); for (const img of emojiImages) { const alt = img.getAttribute('alt')?.toLowerCase(); if (alt === targetGif) { console.log(`[Captcha] Match found: ${alt} — clicking.`); img.closest('.captcha-item').click(); return; } } console.warn(`[Captcha] No match found for: ${targetGif}`); } function checkForSuccessAndClaim() { if (rewardClicked) return; const successMsg = document.querySelector('.captcha-feedback.valid[data-id="validation-message"]'); if (successMsg && successMsg.style.display !== 'none' && successMsg.textContent.includes('Verification successful!')) { console.log('[Captcha] Verification successful. Waiting 5 seconds before claiming...'); rewardClicked = true; setTimeout(() => { const submitButton = document.querySelector('button#submit'); if (submitButton) { console.log('[Captcha] Clicking Get Reward button...'); submitButton.click(); } else { console.warn('[Captcha] Submit button not found.'); } }, 5000); } } function clickDisagreeButton() { const buttons = document.querySelectorAll('button[mode="secondary"][size="large"]'); for (const btn of buttons) { const span = btn.querySelector('span'); if (span && span.textContent.trim().toUpperCase() === 'DISAGREE') { console.log('[Privacy Popup] Clicking DISAGREE button...'); btn.click(); return true; } } return false; } setInterval(() => { solveEmojiCaptcha(); checkForSuccessAndClaim(); clickDisagreeButton(); }, 2000); })();