This commit is contained in:
dengqichen 2025-11-17 17:44:17 +08:00
parent 4fcd5d1df5
commit fb68de0206
5 changed files with 39 additions and 20 deletions

2
.env
View File

@ -8,4 +8,4 @@ MYSQL_HOST=172.22.222.111
MYSQL_PORT=3306 MYSQL_PORT=3306
MYSQL_USER=windsurf-auto-register MYSQL_USER=windsurf-auto-register
MYSQL_PASSWORD=Qichen5210523 MYSQL_PASSWORD=Qichen5210523
MYSQL_DATABASE=auto_register MYSQL_DATABASE=windsurf-auto-register

View File

@ -1023,11 +1023,9 @@ class WindsurfRegister {
} }
} }
// 9. 点击订阅按钮 // 9. 点击订阅按钮并检测卡片拒绝(支持重试)
logger.info(this.siteName, ' → 点击订阅按钮...'); logger.info(this.siteName, ' → 点击订阅按钮...');
await this.human.randomDelay(2000, 3000); await this.human.randomDelay(2000, 3000);
// 9. 点击订阅按钮并检测卡片拒绝(支持重试)
const maxRetries = 5; // 最多重试5次 const maxRetries = 5; // 最多重试5次
let retryCount = 0; let retryCount = 0;
let paymentSuccess = false; let paymentSuccess = false;
@ -1153,15 +1151,11 @@ class WindsurfRegister {
} }
} }
// 额外等待页面稳定 // 额外等待页面稳定
await this.human.randomDelay(2000, 3000); await this.human.randomDelay(2000, 3000);
this.currentStep = 6; this.currentStep = 6;
logger.success(this.siteName, `步骤 6 完成`); logger.success(this.siteName, `步骤 6 完成`);
} else {
logger.warn(this.siteName, ' → 未找到订阅按钮');
this.currentStep = 6;
}
} catch (error) { } catch (error) {
logger.error(this.siteName, `填写支付信息失败: ${error.message}`); logger.error(this.siteName, `填写支付信息失败: ${error.message}`);
@ -1179,7 +1173,7 @@ class WindsurfRegister {
// 0. 检查并关闭可能存在的弹窗("要打开 Windsurf 吗?" // 0. 检查并关闭可能存在的弹窗("要打开 Windsurf 吗?"
logger.info(this.siteName, ' → 检查是否有弹窗需要关闭...'); logger.info(this.siteName, ' → 检查是否有弹窗需要关闭...');
try { try {
await this.page.waitForTimeout(2000); // 等待弹窗出现 await new Promise(resolve => setTimeout(resolve, 2000)); // 等待弹窗出现
// 方法1: 尝试按ESC键关闭浏览器原生对话框 // 方法1: 尝试按ESC键关闭浏览器原生对话框
logger.info(this.siteName, ' → 尝试按ESC键关闭原生对话框...'); logger.info(this.siteName, ' → 尝试按ESC键关闭原生对话框...');
@ -1495,6 +1489,31 @@ class WindsurfRegister {
} }
} }
// 清理浏览器缓存并关闭
if (this.page) {
try {
logger.info(this.siteName, ' → 清除浏览器缓存...');
const client = await this.page.target().createCDPSession();
await client.send('Network.clearBrowserCookies');
await client.send('Network.clearBrowserCache');
await client.send('Storage.clearDataForOrigin', {
origin: '*',
storageTypes: 'all'
});
await this.page.goto('https://windsurf.com', { waitUntil: 'domcontentloaded' });
await this.page.evaluate(() => {
try {
localStorage.clear();
sessionStorage.clear();
} catch (e) {}
});
await client.detach();
logger.success(this.siteName, ' → ✓ 浏览器缓存已清除');
} catch (e) {
logger.warn(this.siteName, ` → 清除缓存失败: ${e.message}`);
}
}
await this.closeBrowser(); await this.closeBrowser();
throw error; throw error;

View File

@ -69,7 +69,7 @@ MYSQL_HOST=172.22.222.111
MYSQL_PORT=3306 MYSQL_PORT=3306
MYSQL_USER=windsurf-auto-register MYSQL_USER=windsurf-auto-register
MYSQL_PASSWORD=Qichen5210523 MYSQL_PASSWORD=Qichen5210523
MYSQL_DATABASE=auto_register MYSQL_DATABASE=windsurf-auto-register
``` ```
### 3. 在代码中使用 ### 3. 在代码中使用
@ -166,4 +166,4 @@ getRepository(name) {
- **地址**: 172.22.222.111:3306 - **地址**: 172.22.222.111:3306
- **用户**: windsurf-auto-register - **用户**: windsurf-auto-register
- **密码**: Qichen5210523 - **密码**: Qichen5210523
- **数据库**: auto_register - **数据库**: windsurf-auto-register

View File

@ -9,7 +9,7 @@ module.exports = {
port: parseInt(process.env.MYSQL_PORT || '3306'), port: parseInt(process.env.MYSQL_PORT || '3306'),
user: process.env.MYSQL_USER || 'windsurf-auto-register', user: process.env.MYSQL_USER || 'windsurf-auto-register',
password: process.env.MYSQL_PASSWORD || 'Qichen5210523', password: process.env.MYSQL_PASSWORD || 'Qichen5210523',
database: process.env.MYSQL_DATABASE || 'auto_register', database: process.env.MYSQL_DATABASE || 'windsurf-auto-register',
waitForConnections: true, waitForConnections: true,
connectionLimit: 10, connectionLimit: 10,
queueLimit: 0, queueLimit: 0,

View File

@ -3,11 +3,11 @@
-- ============================================ -- ============================================
-- 创建数据库(如果不存在) -- 创建数据库(如果不存在)
CREATE DATABASE IF NOT EXISTS `auto_register` CREATE DATABASE IF NOT EXISTS `windsurf-auto-register`
DEFAULT CHARACTER SET utf8mb4 DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci; COLLATE utf8mb4_unicode_ci;
USE `auto_register`; USE `windsurf-auto-register`;
-- 创建 Windsurf 账号表 -- 创建 Windsurf 账号表
CREATE TABLE IF NOT EXISTS `windsurf_accounts` ( CREATE TABLE IF NOT EXISTS `windsurf_accounts` (