first init
This commit is contained in:
parent
3990aeb478
commit
4b885d4c54
11
db.js
11
db.js
@ -36,19 +36,20 @@ export async function ensureSchema() {
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;`);
|
||||
}
|
||||
|
||||
export async function saveAccount({ email, password, createdAt, expiresAt, status }) {
|
||||
export async function saveAccount({ email, password, createdAt, expiresAt, status, credits }) {
|
||||
const p = getPool();
|
||||
if (!p) return;
|
||||
await ensureSchema();
|
||||
const sql = `INSERT INTO accounts (email, password, status, created_at, expires_at)
|
||||
VALUES (?, ?, ?, ?, ?)
|
||||
ON DUPLICATE KEY UPDATE password=VALUES(password), status=VALUES(status), created_at=VALUES(created_at), expires_at=VALUES(expires_at)`;
|
||||
const sql = `INSERT INTO accounts (email, password, status, created_at, expires_at, credits)
|
||||
VALUES (?, ?, ?, ?, ?, ?)
|
||||
ON DUPLICATE KEY UPDATE password=VALUES(password), status=VALUES(status), created_at=VALUES(created_at), expires_at=VALUES(expires_at), credits=VALUES(credits)`;
|
||||
await p.execute(sql, [
|
||||
email,
|
||||
password,
|
||||
status,
|
||||
formatDateTime(createdAt),
|
||||
formatDateTime(expiresAt)
|
||||
formatDateTime(expiresAt),
|
||||
credits
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
16
index.js
16
index.js
@ -79,19 +79,22 @@ async function main() {
|
||||
console.log('📧 本次注册邮箱:', email);
|
||||
|
||||
// 执行注册
|
||||
const success = await registerOnce(emailPage, registerPage, email);
|
||||
const result = await registerOnce(emailPage, registerPage, email);
|
||||
|
||||
// 关闭注册页,准备下次
|
||||
try { await registerPage.close(); } catch {}
|
||||
registerPage = await registerContext.newPage();
|
||||
|
||||
if (success) {
|
||||
if (result && result.success) {
|
||||
successCount++;
|
||||
console.log('\n🎉 ============================================');
|
||||
console.log(' 注册成功!');
|
||||
console.log('============================================');
|
||||
console.log('📧 邮箱:', email);
|
||||
console.log('🔑 密码:', config.verdent.password);
|
||||
if (result.credits) {
|
||||
console.log('💳 额度:', result.credits);
|
||||
}
|
||||
console.log('============================================\n');
|
||||
|
||||
// 邮件页面回退到收件箱
|
||||
@ -113,7 +116,14 @@ async function main() {
|
||||
const createdAt = new Date();
|
||||
const expiresAt = new Date(createdAt.getTime() + 7 * 24 * 60 * 60 * 1000);
|
||||
try {
|
||||
await saveAccount({ email, password: config.verdent.password, createdAt, expiresAt, status: 'active' });
|
||||
await saveAccount({
|
||||
email,
|
||||
password: config.verdent.password,
|
||||
createdAt,
|
||||
expiresAt,
|
||||
status: 'active',
|
||||
credits: result.credits || null
|
||||
});
|
||||
console.log('[DB] ✅ 账号已写入数据库');
|
||||
} catch (e) {
|
||||
console.log('[DB] ⚠️ 写入失败:', e.message);
|
||||
|
||||
@ -247,11 +247,26 @@ export async function completeRegistration(page, verificationCode) {
|
||||
|
||||
const finalUrl = page.url();
|
||||
console.log('✅ 已跳转到 Dashboard:', finalUrl);
|
||||
|
||||
// 第三步:获取额度信息
|
||||
await page.waitForTimeout(2000);
|
||||
let credits = null;
|
||||
try {
|
||||
console.log('💳 步骤 3: 获取额度信息...');
|
||||
const creditsElement = page.locator('.left-number').first();
|
||||
const creditsText = await creditsElement.textContent({ timeout: 5000 });
|
||||
credits = creditsText.trim();
|
||||
console.log('✅ 额度:', credits);
|
||||
} catch (e) {
|
||||
console.log('⚠️ 获取额度失败:', e.message);
|
||||
}
|
||||
|
||||
return { success: true, credits };
|
||||
} catch (e) {
|
||||
console.log('⚠️ 跳转 Dashboard 失败:', e.message);
|
||||
}
|
||||
|
||||
return true;
|
||||
return { success: true, credits: null };
|
||||
} else {
|
||||
// 检查是否有错误提示
|
||||
const errorElement = page.locator('[class*="error"], [class*="alert"]').first();
|
||||
|
||||
65
start.bat
Normal file
65
start.bat
Normal file
@ -0,0 +1,65 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
echo ========================================
|
||||
echo Verdent 自动注册工具启动脚本
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
REM 检查 Node.js 是否安装
|
||||
where node >nul 2>nul
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 未检测到 Node.js,请先安装 Node.js
|
||||
echo 下载地址: https://nodejs.org/
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [✓] Node.js 已安装
|
||||
node --version
|
||||
echo.
|
||||
|
||||
REM 检查是否已安装依赖
|
||||
if not exist "node_modules\" (
|
||||
echo [!] 检测到依赖未安装,开始安装...
|
||||
echo.
|
||||
call npm install
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 依赖安装失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo.
|
||||
echo [✓] 依赖安装完成
|
||||
echo.
|
||||
) else (
|
||||
echo [✓] 依赖已安装
|
||||
echo.
|
||||
)
|
||||
|
||||
REM 设置环境变量
|
||||
set ADSPOWER_USER_ID=k16x0qt2
|
||||
set DB_HOST=172.22.222.111
|
||||
set DB_PORT=3306
|
||||
set DB_USER=auto-register-verdent
|
||||
set DB_PASS=Qichen5210523
|
||||
set DB_NAME=auto-register-verdent
|
||||
|
||||
echo ========================================
|
||||
echo 启动配置:
|
||||
echo - AdsPower ID: %ADSPOWER_USER_ID%
|
||||
echo - 数据库: %DB_HOST%:%DB_PORT%
|
||||
echo - 数据库名: %DB_NAME%
|
||||
echo ========================================
|
||||
echo.
|
||||
echo [启动] 开始运行注册程序...
|
||||
echo 按 Ctrl+C 可停止程序
|
||||
echo.
|
||||
|
||||
REM 启动程序
|
||||
node index.js
|
||||
|
||||
REM 程序结束后暂停
|
||||
echo.
|
||||
echo ========================================
|
||||
echo 程序已退出
|
||||
pause
|
||||
Loading…
Reference in New Issue
Block a user