[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83999":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":15,"compositeScore":16,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":8,"pushedAt":8,"updatedAt":21,"readmeContent":22,"aiSummary":8,"trendingCount":14,"starSnapshotCount":14,"syncStatus":23,"lastSyncTime":24,"discoverSource":25},83999,"ita","supperzl\u002Fita","supperzl",null,"Python",112,56,78,1,0,23,53.07,false,"main",true,[],"2026-06-12 04:01:42","# Idp Team Automation\n\n独立 Python 项目：通过 IDP 生成账号，走纯 HTTP 协议完成 ChatGPT SSO \u002F Codex OAuth，获取 Codex refresh token，并写入 Sub2API 或 CLIProxyAPI（CPA）。\n\n## 项目简介\n\nIdp Team Automation 是一个基于 OpenAI SSO Bug 的 Team 成员账号开通自动化工具。\n\n项目会自动完成 IDP 账号生成、Team 成员账号开通、Codex 授权 URL 生成、refresh token 获取，并将账号录入配置的导出目标。\n\n请作者喝杯咖啡，作者会送你 1000 点 IDP API 点数：[https:\u002F\u002Fpay.ldxp.cn\u002Fitem\u002F9isxtv](https:\u002F\u002Fpay.ldxp.cn\u002Fitem\u002F9isxtv)。\n\n## 作者信息\n\n- iDP 协议作者：@该隐\n- 注册机作者：@朴圣佑\n\n## 联系方式\n\n| iDP 协议作者 | 注册机作者 |\n| --- | --- |\n| @该隐 | @朴圣佑 |\n| \u003Cimg src=\"docs\u002Fassets\u002Fcain_qr.jpg\" alt=\"@该隐二维码\" width=\"260\"> | \u003Cimg src=\"docs\u002Fassets\u002Fpu_shengyou_qr.jpg\" alt=\"@朴圣佑二维码\" width=\"260\"> |\n\n## 功能\n\n- 单账号生成、授权、推送 Sub2API \u002F CPA。\n- 批量多线程 TUI：\n  - 输入账号数量和线程数。\n  - 每个任务失败最多重试 5 次；注册账号一旦生成成功，后续重试会复用同一个 IDP account_id，避免重复消耗点数。\n  - 运行中显示成功数、失败数、运行中数、等待数。\n  - 最终输出统计文本，不在终端打印 token JSON。\n- 纯 HTTP 协议流程；无浏览器 fallback。\n- 日志和 artifact 默认脱敏。\n\n## 快速使用步骤\n\n1. 复制环境变量模板：\n\n   ```bash\n   cp .env.example .env\n   ```\n\n2. 编辑 `.env`，填写 IDP 和 Sub2API 配置：\n\n   ```env\n   IDP_TOKEN=\n   SUB2API_URL=\n   SUB2API_EMAIL=\n   SUB2API_PASSWORD=\n   SUB2API_GROUP=5\n   ```\n\n3. 启动 TUI：\n\n   ```bash\n   python3 scripts\u002Frun_batch_tui.py\n   ```\n\n4. 根据 TUI 选择模块：\n\n   ```text\n   1. 注册账号\n   2. 重新补授权\n   ```\n\n## 运行截图\n\n\u003Cimg src=\"docs\u002Fassets\u002Ftui_running.png\" alt=\"Idp Team Automation TUI 运行截图\" width=\"900\">\n\n## 安装\n\n```bash\ncd \u003C项目目录>\npython3 -m pip install -e .\n```\n\n如果只直接运行脚本，确保当前 Python 已安装：\n\n```bash\npython3 -m pip install 'curl_cffi>=0.7'\n```\n\n## 配置\n\n复制示例配置：\n\n```bash\ncp .env.example .env\n```\n\n填写：\n\n```env\nIDP_BASE=http:\u002F\u002Fidp.fdvctte.info\nIDP_TOKEN=\n\nSUB2API_URL=\nSUB2API_EMAIL=\nSUB2API_PASSWORD=\nEXPORT_TARGETS=sub2api\n```\n\n可选：\n\n```env\nIDP_CLIENT_ID=\nIDP_CHANNEL_ID=\nIDP_DOMAIN=\nSUB2API_MODEL_WHITELIST=\nCPA_URL=\nCPA_MANAGEMENT_KEY=\nREQUEST_TIMEOUT=60\n```\n\n## 单账号运行\n\n生成新账号并推送默认导出目标（默认 Sub2API）：\n\n```bash\npython3 scripts\u002Frun_idp_codex.py --timeout 60\n```\n\n只推送 CPA：\n\n```bash\npython3 scripts\u002Frun_idp_codex.py --timeout 60 --export-targets cpa\n```\n\n同时推送 Sub2API 和 CPA：\n\n```bash\npython3 scripts\u002Frun_idp_codex.py --timeout 60 --export-targets sub2api,cpa\n```\n\n复用已有 IDP account_id：\n\n```bash\npython3 scripts\u002Frun_idp_codex.py --account-id 1638 --timeout 60\n```\n\n只跑 OAuth，不推送：\n\n```bash\npython3 scripts\u002Frun_idp_codex.py --timeout 60 --no-sub2api\n# 或\npython3 scripts\u002Frun_idp_codex.py --timeout 60 --export-targets none\n```\n\n## 统一 TUI\n\n交互式：\n\n```bash\npython3 scripts\u002Frun_batch_tui.py\n```\n\n进入后先选择模块：\n\n```text\n1. 注册账号\n2. 重新补授权\n```\n\n选择重新补授权时，只需要填写分组 ID、可选指定邮箱和线程数。\n\n注册账号非交互：\n\n```bash\npython3 scripts\u002Frun_batch_tui.py --mode register --count 10 --threads 3 --yes\n```\n\n指定重试次数：\n\n```bash\npython3 scripts\u002Frun_batch_tui.py --mode register --count 10 --threads 3 --retries 5 --yes\n```\n\n只跑 OAuth，不推送：\n\n```bash\npython3 scripts\u002Frun_batch_tui.py --mode register --count 5 --threads 2 --no-sub2api --yes\n# 或\npython3 scripts\u002Frun_batch_tui.py --mode register --count 5 --threads 2 --export-targets none --yes\n```\n\n重新补授权非交互：\n\n```bash\npython3 scripts\u002Frun_batch_tui.py --mode reauth --group 5 --threads 3 --yes\n```\n\n重新补授权只处理前 5 个错误账号：\n\n```bash\npython3 scripts\u002Frun_batch_tui.py --mode reauth --group 5 --threads 3 --limit 5 --yes\n```\n\n重新补授权指定单个邮箱：\n\n```bash\npython3 scripts\u002Frun_batch_tui.py --mode reauth --group 5 --threads 1 --email user@example.com --yes\n```\n\n## Sub2API 分组错误账号检测\n\n检测 `.env` 中 `SUB2API_GROUP` 指定分组内状态错误的账号：\n\n```bash\npython3 scripts\u002Fcheck_sub2api_group.py\n```\n\n指定分组：\n\n```bash\npython3 scripts\u002Fcheck_sub2api_group.py --group 5\n```\n\n输出 JSON 并保存：\n\n```bash\npython3 scripts\u002Fcheck_sub2api_group.py --group 5 --json --output artifacts\u002Fsub2api_group_5_health.json\n```\n\n检测错误账号并生成重新授权计划，默认不更新远端：\n\n```bash\npython3 scripts\u002Freauthorize_sub2api_errors.py --group 5\n```\n\n确认后实际重新授权并更新原 Sub2API 账号，也可以用统一 TUI：\n\n```bash\npython3 scripts\u002Freauthorize_sub2api_errors.py --group 5 --apply\npython3 scripts\u002Frun_batch_tui.py --mode reauth --group 5 --threads 3 --yes\n```\n\n重新授权成功后会自动执行：\n\n- 更新原 Sub2API 账号 credentials。\n- 清空账号错误状态。\n- 清空账号限流状态。\n- 打开账号调度。\n\n限制只处理前 3 个错误账号：\n\n```bash\npython3 scripts\u002Freauthorize_sub2api_errors.py --group 5 --apply --limit 3\n```\n\n只处理指定邮箱：\n\n```bash\npython3 scripts\u002Freauthorize_sub2api_errors.py --group 5 --apply --email user@example.com\n```\n\n当前检测结果：\n\n```text\nSUB2API_GROUP=5\n分组账号数：88\n错误账号数：23\n正常账号数：65\n错误状态：error\n主要错误：Token revoked (401)\n```\n\n## 输出\n\n单账号输出目录：\n\n```text\nartifacts\u002Fidp_codex\u002F\n```\n\n批量输出目录：\n\n```text\nartifacts\u002Fbatch_YYYYMMDD_HHMMSS\u002F\n├── summary.json\n├── task_0001\u002F\n│   ├── attempt_01\u002F\n│   └── ...\n└── task_0002\u002F\n    └── ...\n```\n\n`artifacts\u002F` 是运行产物目录，已被 `.gitignore` 忽略；只保留 `artifacts\u002F.gitkeep`。\n\n清理运行产物：\n\n```bash\nfind artifacts -mindepth 1 ! -name .gitkeep -delete\n```\n\n## 测试\n\n```bash\npython3 -m pytest -q\n```\n\n## 目录\n\n```text\nlib\u002F\n├── batch_tui.py        # 批量多线程 TUI\n├── cli.py              # 单账号 CLI 编排\n├── codex_oauth.py      # PKCE \u002F OAuth URL \u002F token 解析\n├── config.py           # .env 和 CLI 配置\n├── cpa_export.py       # CLIProxyAPI auth 文件导出\n├── errors.py           # 项目异常类型\n├── idp_client.py       # IDP API\n├── logging_utils.py    # 脱敏 JSONL 日志\n├── reauthorize_sub2api_errors.py # 错误账号重新授权\n├── sub2api_health.py   # Sub2API 分组账号状态检测\n├── sso_http_flow.py    # 纯 HTTP SSO\u002FOAuth 主流程\n└── sub2api_export.py   # Sub2API 导出\n\ndocs\u002Fassets\u002F\n├── cain_qr.jpg         # @该隐二维码\n├── pu_shengyou_qr.jpg  # @朴圣佑二维码\n└── tui_running.png     # TUI 运行截图\n```\n",2,"2026-06-11 04:12:01","CREATED_QUERY"]