Skip to content

yyg-max/extract_refresh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

账号处理系统

功能概述

完整自动化流程:接收账号 → Codex登录 → 浏览器自动化 → 提取Token → 提交CRS系统

  1. API接口 - 接收邮箱密码并保存到数据库
  2. 自动登录 - 监听数据库,自动执行codex登录流程
  3. 浏览器自动化 - Playwright自动填写表单并完成OAuth认证
  4. Token提取 - 自动提取refresh_token并清理文件
  5. CRS集成 - 自动提交到CRS系统(带重试机制)
  6. 定时清理 - 每天凌晨0点自动清理已处理记录

快速开始

1. 安装依赖

pip install -r requirements.txt
playwright install chromium

2. 配置环境变量

# 复制配置模板
copy .env.example .env

# 编辑.env文件,修改CRS系统地址和账号
notepad .env

必须修改的配置:

WEB_AUTH_BASE_URL=http://your-server:port
WEB_AUTH_USERNAME=your-username
WEB_AUTH_PASSWORD=your-password

详细配置说明见 INSTALL.md

3. 启动服务

python main.py

使用方法

Web界面(推荐)

普通页面:

http://localhost:8000/
  • 📝 添加账号
  • 📊 查看统计

管理后台:

http://localhost:8000/admin

需登录访问(默认账号:admin / admin123

  • 📊 查看统计
  • 🔄 刷新CRS Token
  • 🗑️ 清理已处理记录

⚠️ 安全提醒:首次使用请在.env中修改管理员密码!

API接口

添加/更新账号

POST http://localhost:8000/add_account
Content-Type: application/json

{
  "email": "test@example.com",
  "password": "yourpassword"
}

说明:

  • 邮箱不存在:新增账号
  • 邮箱已存在:更新密码并重置为待处理状态

查看统计

GET http://localhost:8000/stats

# 返回示例
{
  "total": 10,
  "pending": 3,
  "success": 5,
  "failed": 2,
  "error": 0
}

手动清理已处理记录

DELETE http://localhost:8000/cleanup

查看CRS系统Token信息

GET http://localhost:8000/token/info

健康检查

GET http://localhost:8000/health

工作流程

1. API接收账号 → 数据库(pending)
2. 处理器检测待处理账号
3. codex login → 获取OAuth URL
4. Playwright自动登录
   ├─ 填写邮箱 → 继续
   ├─ 填写密码 → 继续
   └─ 确认授权 → 继续
5. 等待OAuth回调
6. 提取 ~/.codex/auth.json 中的 tokens.refresh_token
7. 清理文件(auth.json、log/、version.json)
8. 提交到CRS系统
   ├─ 获取CRS Token(自动登录/刷新)
   ├─ POST /admin/openai-accounts
   └─ 失败重试3次,每次间隔3分钟
9. 更新数据库(success)
10. 关闭浏览器

核心特性

1. 智能账号管理

  • 邮箱存在自动更新密码并重置状态
  • 状态跟踪:pending/success/failed/error
  • 定时清理已处理记录(每天凌晨0点)

2. CRS系统集成

  • Token自动登录和刷新
  • 有效期管理(-1小时安全边界)
  • 提交失败自动重试(3次,每次3分钟)
  • 请求头自动添加Cookie认证

3. 浏览器自动化

  • Playwright无痕模式
  • 多步骤登录流程
  • 自动关闭残留进程
  • 元素智能定位

4. 优雅退出

  • Ctrl+C第一次:等待当前任务完成
  • Ctrl+C第二次:强制退出
  • 空闲时立即退出

5. 性能优化

  • 无账号时10秒检查一次
  • 统计显示节流(60秒一次)
  • 可中断的等待机制

数据库结构

CREATE TABLE accounts (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    email TEXT NOT NULL,
    password TEXT NOT NULL,
    status TEXT DEFAULT 'pending',
    refresh_token TEXT,
    created_at TEXT DEFAULT CURRENT_TIMESTAMP,
    processed_at TEXT
);

配置文件

所有配置在 .env 文件中:

配置项 说明 默认值
CODEX_COMMAND codex命令路径 codex
API_PORT API端口 8000
WEB_AUTH_BASE_URL CRS系统地址 -
WEB_AUTH_USERNAME CRS用户名 admin
WEB_AUTH_PASSWORD CRS密码 admin
SUBMIT_MAX_RETRIES 最大重试次数 3
SUBMIT_RETRY_DELAY 重试间隔(秒) 180
AUTO_CLEANUP_TIME 清理时间 00:00
DEBUG_MODE 调试模式 False

完整配置说明见 INSTALL.md

日志模式

生产模式(DEBUG_MODE=False)

监听数据库中...

📊 待处理: 3 个账号

[1] test@example.com
处理账号: test@example.com
✓ 成功: rt_2BwmyhWM1y1djjNXqkZlp...
✓ 处理成功
[尝试 1/3] 提交到CRS系统...
[CRS] ✓ 提交成功: test@example.com
✓ 已提交到CRS系统

调试模式(DEBUG_MODE=True)

显示所有详细执行步骤、元素定位、URL变化等。

常见问题

Q: 浏览器未自动填写?
A: 开启DEBUG_MODE查看详细日志,检查元素定位

Q: 提交CRS失败?
A: 检查.env中的CRS系统地址和账号,运行python test_token.py测试

Q: 如何禁用自动清理?
A: 修改.env中的ENABLE_AUTO_CLEANUP=False

Q: 修改配置后不生效?
A: 需要重启程序,.env只在启动时加载

Q: 如何查看处理进度?
A: 访问http://localhost:8000/stats

项目亮点

✅ 完全自动化,无需人工干预
✅ 智能Token管理,自动刷新
✅ 优雅退出机制,保证数据完整
✅ 配置与代码分离,便于部署
✅ 详细日志,便于排查问题
✅ 生产就绪,可直接使用


安装配置详见: INSTALL.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors