|
|
4 месяцев назад | |
|---|---|---|
| content | 4 месяцев назад | |
| data | 4 месяцев назад | |
| icons | 4 месяцев назад | |
| sidepanel | 4 месяцев назад | |
| .gitignore | 4 месяцев назад | |
| LICENSE | 4 месяцев назад | |
| README.md | 4 месяцев назад | |
| background.js | 4 месяцев назад | |
| manifest.json | 4 месяцев назад |
一个用于批量跑通 ChatGPT OAuth 注册/登录流程的 Chrome 扩展。
当前版本基于侧边栏控制,支持单步执行、整套自动执行、停止当前流程、保存常用配置,以及通过 DuckDuckGo / QQ / 163 / Inbucket mailbox 协助获取验证码。
Sign up / RegisterQQ Mail、163 Mail、Inbucket mailbox@duck.com 地址birthdayageAuto 多轮运行Stop@duck.com + QQ / 163 / Inbucket 转发QQ / 163 / Inbucket,对应页面需要提前能正常打开chrome://extensions/CPA你的管理面板 OAuth 页面地址,例如:
http(s)://<your-host>/management.html#/oauth
Step 1 和 Step 9 都依赖这个地址。
Mail支持三种验证码来源:
163 MailQQ MailInbucket说明:
QQ 和 163 用于直接轮询网页邮箱Inbucket 通过你在侧边栏里配置的 host 访问 mailbox 页面:https://<your-inbucket-host>/m/<mailbox>/Mailbox仅当 Mail = Inbucket 时显示。
填写 Inbucket mailbox 名称,例如:
tmp-mailbox
脚本会自动打开:
https://<your-inbucket-host>/m/<mailbox>/
并且只检索未读邮件:
.message-list-entry.unseenInbucket仅当 Mail = Inbucket 时显示。
这里填写 Inbucket host,支持两种格式:
your-inbucket-hosthttps://your-inbucket-host脚本会自动规范化成 origin 后再拼接 mailbox URL。
EmailStep 3 使用的注册邮箱。
来源有两种:
Auto 从 DuckDuckGo Email Protection 自动获取一个新的 @duck.com注意:
Auto 按钮只负责 DuckDuckGo 地址获取Password保存 按钮手动保存一次扩展会把本轮实际使用的密码同步回侧边栏,便于查看和复制。
Auto整套流程自动跑。
支持多轮运行,运行次数由右上角数字框决定。
如果当前面板里已经存在未完成进度,点击 Auto 时会弹出选择:
重新开始:重置当前流程进度,从 Step 1 开始新一轮继续当前:把 已完成 / 已跳过 视为已处理,从第一个未处理步骤继续往后执行侧边栏共有 9 个步骤按钮,可逐步执行:
Get OAuth LinkOpen SignupFill Email / PasswordGet Signup CodeFill Name / BirthdayLogin via OAuthGet Login CodeManual OAuth ConfirmCPA Verify点击右上角 Auto 后,后台会按顺序跑完整流程。
当前 Auto 逻辑是:
Continue也就是说:
继续当前 时,后台不会先做大而全的前置校验,而是从当前步骤状态直接继续;缺什么条件,就在运行到那一步时再报错或暂停通过 content/vps-panel.js:
Codex OAuth 卡片出现结果会保存到侧边栏的 OAuth 字段。
通过 content/signup-page.js:
Sign up / Register / 创建账户 按钮实际使用的密码会写入会话状态,并同步到侧边栏显示。
根据 Mail 配置,轮询邮箱并提取 6 位验证码。
进入邮箱轮询前,脚本会先确认认证页是否已经进入验证码页面;如果密码页出现 糟糕,出错了 / Operation timed out 并带有 重试 按钮,会先自动点击 重试、回到密码页重新提交,再继续等待验证码页面。
支持:
content/qq-mail.jscontent/mail-163.jscontent/inbucket-mail.js邮件匹配规则以以下关键词为主:
openai、noreply、verify、auth、duckduckgo、forwardverify、verification、code、验证、confirm随机生成人名与生日。
当前脚本支持两种页面结构:
birthdayage如果页面是生日模式,会填写年月日;如果页面上存在 input[name='age'],则直接填写年龄。
在登录前会先重新获取一遍最新的 CPA OAuth 链接,再使用刚注册的账号登录。
支持:
与 Step 4 类似,但会使用稍微不同的关键词组合去找登录验证码邮件。
严格回调捕获规则:
http(s)://localhost:<port>/auth/callback?code=...&state=...localhost 页面,包括本地部署的 CPA 面板,不会再被误判为回调地址虽然按钮名称还是 Manual OAuth Confirm,但当前代码已经做了自动尝试:
debugger 的输入事件点击该按钮chrome.webNavigation.onBeforeNavigateCallback注意:
校验规则:
/auth/callback,或缺少 code / state 的 localhostUrl/auth 这一类真实回调标签页,不会再泛化清理任意 localhost 路径回到 CPA 面板:
认证成功! 状态徽标后,才判定成功http://localhost:1455/auth 这一类前缀的 localhost 残留页面通过 content/duck-mail.js:
Generate Private Duck Address@duck.com 地址这个功能会被:
Email 旁边的 Auto 按钮使用Auto Run 流程优先尝试使用扩展内置了停止当前流程的能力:
StopSTOP_FLOW适合以下场景:
运行时状态主要使用 chrome.storage.session 保存:
配置项另外使用 chrome.storage.local 持久化保存:
特点:
storage.session 对 content script 的访问background.js 后台主控,编排 1~9 步、Tab 复用、状态管理
manifest.json 扩展清单
data/names.js 随机姓名、生日数据
content/utils.js 通用工具:等待元素、点击、日志、停止控制
content/vps-panel.js CPA 面板步骤:Step 1 / Step 9
content/signup-page.js OpenAI 注册/登录页步骤:Step 2 / 3 / 5 / 6 / 8
content/duck-mail.js Duck 邮箱自动获取
content/qq-mail.js QQ 邮箱验证码轮询
content/mail-163.js 163 邮箱验证码轮询
content/inbucket-mail.js Inbucket mailbox 验证码轮询
sidepanel/ 侧边栏 UI
推荐先手动跑通一次:
确认邮箱和验证码链路稳定后,再使用 Auto。
当前 Inbucket 逻辑只看未读邮件,但还是建议:
如果 Duck 页面打不开、未登录或按钮变化:
Email 输入框中粘贴邮箱Step 3 时,如果邮箱为空,脚本会先自动尝试获取 Duck 邮箱;失败后再改为手填Continue补充检查项:
/auth/callbackcode 和 state如果 CPA 部署在 localhost,确认当前看到的页面是真实 OAuth 回调,而不是 CPA 面板自身页面
OAuth 同意页 DOM 是否变化
“继续”按钮是否变成了别的文案
localhost 回调是否真的触发
浏览器是否允许 debugger 附加
Auto 按钮名称和 Step 8 的旧文案还未完全统一,但代码行为以实际实现为准accounts 中,便于追踪本次运行结果