auto-account-machine/browser-automation-ts/TOOLS-MIGRATION-PLAN.md
2025-11-21 17:59:49 +08:00

184 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Tools迁移计划
## 🎯 目标
`src/shared/libs/` 中的JS工具迁移到 `browser-automation-ts/src/tools/`统一使用TypeScript和ITool规范。
---
## 📊 迁移清单
### 1. AccountGenerator ✅ (已创建)
- **源文件**: `src/shared/libs/account-generator.js`
- **目标**: `browser-automation-ts/src/tools/AccountGenerator.ts`
- **状态**: ✅ 完成新实现符合ITool规范
- **接口**: `IAccountGenerator`
### 2. CardGenerator
- **源文件**: `src/shared/libs/card-generator.js`
- **目标**: `browser-automation-ts/src/tools/CardGenerator.ts`
- **状态**: ⏳ 待迁移
- **接口**: `ICardGenerator`
- **依赖**: Database
- **功能**:
- 从数据库获取未使用的卡
- 标记卡为已使用
- BIN去重逻辑
### 3. EmailHandler
- **源文件**: `src/shared/libs/email-handler.js` (如果存在)
- **目标**: `browser-automation-ts/src/tools/EmailHandler.ts`
- **状态**: ⏳ 待创建
- **接口**: `IEmailHandler`
- **功能**:
- 连接邮箱服务
- 获取验证码
- 解析邮件内容
### 4. CaptchaSolver
- **源文件**: `src/shared/libs/captcha-solver.js`
- **目标**: `browser-automation-ts/src/tools/CaptchaSolver.ts`
- **状态**: ⏳ 待迁移
- **接口**: `ICaptchaHandler`
- **功能**:
- Turnstile处理
- hCaptcha处理
- reCAPTCHA处理
### 5. DatabaseClient
- **源文件**: `src/shared/libs/database.js`
- **目标**: `browser-automation-ts/src/tools/DatabaseClient.ts`
- **状态**: ⏳ 待迁移
- **接口**: `IDatabaseClient`
- **功能**:
- MySQL连接
- 保存账号数据
- 保存卡片数据
- 查询操作
---
## 🏗️ 最终架构
```
browser-automation-ts/
├── src/
│ ├── core/ # 核心Provider、Action、WorkflowEngine
│ ├── adapters/ # 适配器接口
│ └── tools/ # 业务工具符合ITool规范
│ ├── ITool.ts # ✅ 工具接口规范
│ ├── AccountGenerator.ts # ✅ 账号生成器
│ ├── CardGenerator.ts # ⏳ 卡生成器
│ ├── EmailHandler.ts # ⏳ 邮箱处理器
│ ├── CaptchaSolver.ts # ⏳ 验证码处理器
│ └── DatabaseClient.ts # ⏳ 数据库客户端
├── configs/
│ └── sites/
│ ├── windsurf.yaml # 流程定义
│ └── windsurf-adapter.ts # 业务逻辑使用tools
└── cli/
└── run.ts # 通用执行器
```
---
## 💡 使用示例
### Windsurf Adapter示例
```typescript
import { WindsurfAdapter } from './windsurf-adapter';
import { AccountGenerator } from '../../src/tools/AccountGenerator';
import { CardGenerator } from '../../src/tools/CardGenerator';
import { DatabaseClient } from '../../src/tools/DatabaseClient';
class WindsurfAdapter implements ISiteAdapter {
private accountGen: AccountGenerator;
private cardGen: CardGenerator;
private db: DatabaseClient;
async initialize(context: any) {
// 初始化工具
this.accountGen = new AccountGenerator({
emailDomain: 'tempmail.com'
});
await this.accountGen.initialize();
this.db = new DatabaseClient({
host: 'localhost',
database: 'accounts'
});
await this.db.initialize();
this.cardGen = new CardGenerator({
database: this.db
});
await this.cardGen.initialize();
// 生成账号(如果需要)
if (!context.data.account.email) {
context.data.account = await this.accountGen.generate();
}
}
getHandlers() {
return {
generateCard: async () => {
const card = await this.cardGen.generate();
this.context.data.card = card;
return { success: true, data: card };
},
saveToDatabase: async () => {
await this.db.saveAccount(this.context.data.account);
await this.db.saveCard(this.context.data.card);
return { success: true };
}
};
}
}
```
---
## ✅ 迁移优势
1. **类型安全** - 全TypeScript编译时检查
2. **统一规范** - 所有工具实现ITool接口
3. **易测试** - 接口明确方便mock
4. **可扩展** - 新工具遵循同样规范
5. **解耦** - 工具独立adapter组合使用
---
## 📅 迁移计划
### 第一阶段:核心工具(当前)
- [x] ITool接口规范
- [x] AccountGenerator
- [ ] DatabaseClient优先
- [ ] CardGenerator
### 第二阶段:扩展工具
- [ ] EmailHandler
- [ ] CaptchaSolver
### 第三阶段:测试和优化
- [ ] 单元测试
- [ ] 集成测试
- [ ] 性能优化
---
## 🚀 开始使用
当前可以直接使用:
```bash
# 只需设置AdsPower ID
export ADSPOWER_USER_ID="your-id"
# 运行(会自动生成账号)
pnpm run run -- windsurf
```
账号数据完全由 `AccountGenerator` 自动生成!