From 58b9d72ebee338e64a505efc18279645fa03cbf3 Mon Sep 17 00:00:00 2001 From: dengqichen Date: Mon, 17 Nov 2025 21:53:07 +0800 Subject: [PATCH] aaaaa --- src/tools/account-register/sites/windsurf.js | 40 ++++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/src/tools/account-register/sites/windsurf.js b/src/tools/account-register/sites/windsurf.js index 0996741..1bcbbdf 100644 --- a/src/tools/account-register/sites/windsurf.js +++ b/src/tools/account-register/sites/windsurf.js @@ -1050,8 +1050,15 @@ class WindsurfRegister { } // 2. 调用 CapSolver API 获取 token + // 简化 URL,移除 hash 和查询参数(CapSolver 不需要完整 URL) const currentUrl = this.page.url(); - const token = await this.capsolver.solveHCaptcha(captchaInfo.siteKey, currentUrl); + const simplifiedUrl = new URL(currentUrl); + const cleanUrl = `${simplifiedUrl.protocol}//${simplifiedUrl.host}${simplifiedUrl.pathname}`; + + logger.info(this.siteName, ` → 原始 URL: ${currentUrl.substring(0, 80)}...`); + logger.info(this.siteName, ` → 简化 URL: ${cleanUrl}`); + + const token = await this.capsolver.solveHCaptcha(captchaInfo.siteKey, cleanUrl); logger.info(this.siteName, ` → 获取到 token: ${token.substring(0, 30)}...`); @@ -1265,9 +1272,34 @@ class WindsurfRegister { } if (captchaDetected) { - logger.info(this.siteName, ' → 正在处理验证码...'); - await this.handleHCaptcha(); - await this.human.randomDelay(1000, 2000); + logger.warn(this.siteName, ' → ⚠️ 检测到验证码,请手动完成(等待60秒)...'); + + // 等待用户手动完成验证码 + const waitStart = Date.now(); + const maxWait = 60000; // 等待60秒 + + while (Date.now() - waitStart < maxWait) { + // 检查验证码是否已完成 + const captchaCompleted = await this.page.evaluate(() => { + // 检查验证码对话框是否消失 + const modal = document.querySelector('[role="dialog"]'); + const modalVisible = modal && window.getComputedStyle(modal).display !== 'none'; + return !modalVisible; + }); + + if (captchaCompleted) { + const elapsed = ((Date.now() - waitStart) / 1000).toFixed(1); + logger.success(this.siteName, ` → ✓ 验证码已完成(耗时${elapsed}秒)`); + break; + } + + // 每秒检查一次 + await new Promise(resolve => setTimeout(resolve, 1000)); + } + + if (Date.now() - waitStart >= maxWait) { + logger.warn(this.siteName, ' → ⚠️ 验证码等待超时,继续尝试...'); + } } else { logger.info(this.siteName, ` → ✓ 无验证码(检查${captchaCheckCount}次,耗时${((Date.now() - checkStartTime) / 1000).toFixed(1)}秒)`); }