[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94866":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},94866,"gpt_nerver","Nervercc\u002Fgpt_nerver","Nervercc","ChatGPT Plus automation toolkit: PyQt6 desktop + JSON-RPC registration engine + card\u002FCDK\u002FPayPal\u002FGCash flows",null,"Python",588,76,3,0,432,85,79.66,"MIT License",false,"main",true,[],"2026-08-24 04:01:22","# gpt_nerver\n\n一个用于**批量维护 \u002F 开通 ChatGPT Plus** 的本地 PyQt6 桌面工具。核心能力：\n\n- **注册引擎**：协议 \u002F UI 双模式建号（`vendor\u002Fregister-protocol`），支持 iCloud\u002FOutlook\u002Fxpgmail\u002FCF-Worker 邮箱源、密码 + TOTP + Passkey MFA、手机号注册。\n- **登录态维护**：session cookie 刷 AT、AT 吊销自动密码 + TOTP 重登、代理体检 + SID 轮换。\n- **卡池 & 开通**：Duola 虚拟卡自动开卡 \u002F 补卡；PH-Link 提链 + Stripe 绑卡 + `checkout\u002Fconfirm` 全链路开 Plus。\n- **CDK 兑换**：外部充值站（`chong.nerver.cc` 同协议）批量兑换，多渠道 CDK 池管理。\n- **附加变现链路**：GCash 订阅 \u002F PayPal 批量取链 \u002F 手机号绑定 + Codex PKCE 生成 CPA。\n\n> ⚠️ **本仓库仅用于学习与合规测试**。使用者须自行确保遵守 OpenAI、Stripe、各代理服务商、\n> 各地区法律法规的相关条款。作者不对任何滥用行为负责，不承诺代码稳定性或结果可用性。\n\n---\n\n## 目录\n\n- [快速开始](#快速开始)\n- [能跑什么 \u002F 不能跑什么](#能跑什么--不能跑什么)\n- [目录结构](#目录结构)\n- [十个 Tab 一览](#十个-tab-一览)\n- [外部服务接入](#外部服务接入)\n- [常见工作流](#常见工作流)\n- [开发与测试](#开发与测试)\n- [进一步阅读](#进一步阅读)\n- [免责声明](#免责声明)\n\n---\n\n## 快速开始\n\n### 环境要求\n\n- Python **3.10+**（推荐 3.11 \u002F 3.12；已在 3.14 上过 smoke）\n- Windows \u002F macOS 均可；部分远端浏览器功能依赖 AdsPower 本地 API\n- 首次运行会自动下载并解压 Chromium（Playwright）\n\n### 安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002F\u003C你的用户名>\u002Fgpt_nerver.git\ncd gpt_nerver\npython -m pip install -r requirements.txt\npython -m playwright install chromium\n```\n\n### 首次启动\n\n```bash\npython -m src.main\n```\n\n首次启动会：\n\n1. 复制 `config.example.json` → `config.json`（本地文件，不进 git）\n2. 在仓库根目录建 `gpt_nerver.db`（SQLite，全部账号 \u002F 卡 \u002F CDK \u002F 手机号池数据存这里）\n3. 建 `logs\u002F`、`data\u002F`、`output\u002F` 三个目录\n4. 弹出 GUI（10 个 Tab）\n\n---\n\n## 能跑什么 \u002F 不能跑什么\n\n诚实矩阵。别人 clone 后立刻能用的、需要自己配一层的、必须联接外部 SaaS 才能跑的，分三档：\n\n### ✅ 开箱即用（零外部服务）\n\n| 场景 | 说明 |\n| --- | --- |\n| GUI 启动 | `python -m src.main` |\n| 手动导入 session-token \u002F 邮箱-密码-TOTP-session-AT 多段格式 | 「账户列表」→ 粘贴导入 |\n| 「完善 SESSION」刷新 → 输出完整 JSON | 只依赖 `chatgpt.com\u002Fapi\u002Fauth\u002Fsession?refresh=true` |\n| 「查订阅」批量查 plan | 只依赖 chatgpt.com API |\n| SQLite 账户 \u002F 卡 \u002F CDK \u002F 手机号池管理、CSV 导入导出 | 纯本地 |\n| 单元测试 | `python tests\u002Ftest_cdk_pool_and_geo.py` \u002F `python tests\u002Ftest_relogin_proxy_rotate.py` |\n\n### 🔧 需要自己配一层（免费 \u002F 自建）\n\n| 依赖 | 用在哪 | 起步成本 |\n| --- | --- | --- |\n| **住宅或数据中心代理** | 没代理 CF 直接 403 | 任意 socks5\u002Fhttp 都行，`config.json.proxies` 或\"代理\"Tab 粘一行 |\n| **AdsPower**（远端浏览器）| UI 建号模式；协议模式不需要 | 免费版够用，默认 `http:\u002F\u002F127.0.0.1:50325` |\n| **CF Email Worker 邮箱域** | 「随机邮箱」注册模式收 OTP | 自建 CF Worker，改 `config.mail.email_domain`，见 [`docs\u002FSETUP.md`](docs\u002FSETUP.md) |\n| **hCaptcha 求解器**（可选）| 注册风控高时 | nonecap \u002F yescaptcha 之类，付费 |\n\n### 💰 必须联外部 SaaS 才能跑（硬依赖）\n\n| 服务 | 用在哪 | 没有 key 会怎样 |\n| --- | --- | --- |\n| `cha.nerver.cc` API | PH-Link 提链、优惠预检、PayPal 取链、GCash、订阅查询、UPI\u002FPIX\u002FiDEAL\u002FKakao 出码 | 直接失败，需 `config.cha.api_key` |\n| `chong.nerver.cc` API | CDK 兑换充值 | 走不通 CDK 开通模式 |\n| Duola 虚拟卡商 | 自动开卡 \u002F 补卡 | 只能手动导入卡池 |\n| HeroSMS \u002F SMSBower | 手机号注册 + 手机号绑定 CPA | 走不到这条路，转为纯 email 注册 |\n| IPWEB \u002F IPRoyal 住宅代理 | 高抗封成功率 | 可换任意代理，但成功率显著下降 |\n| iCloud 邮箱池后台 | `icloud_mail_provider.py` 客户端连的后台服务 | 只能改用 outlook \u002F imap 模式手动导入 |\n\n> **注意**：`cha.nerver.cc` \u002F `chong.nerver.cc` 是本仓库作者维护的 SaaS 服务，需自行联系拿 key 或\n> 按其公开 API 协议（`docs\u002F*.md` 有部分描述）自建同协议后端。\n\n---\n\n## 目录结构\n\n```\ngpt_nerver\u002F\n├── src\u002F\n│   ├── main.py                 # 启动入口: python -m src.main\n│   ├── ui\u002F                     # PyQt6 桌面 UI\n│   │   ├── main_window.py      # 10 个 Tab 挂载\n│   │   ├── tabs\u002F               # 每个 Tab 的实现\n│   │   │   ├── sessions_tab.py       # 账户列表主 Tab（含右键批量动作）\n│   │   │   ├── sessions\u002F             # 从 sessions_tab.py 拆出的子模块\n│   │   │   │   ├── workers.py        #   完善SESSION \u002F 查订阅 \u002F GCash 硬查 workers\n│   │   │   │   ├── actions.py        #   右键批量操作 Mixin\n│   │   │   │   ├── dialogs.py        #   详情 \u002F 粘贴导入 \u002F 出库对话框\n│   │   │   │   └── ...\n│   │   │   ├── emails_tab.py\n│   │   │   ├── cards_tab.py\n│   │   │   ├── cdk_tab.py\n│   │   │   ├── phone_pool_tab.py\n│   │   │   ├── proxy_tab.py\n│   │   │   ├── billing_tab.py\n│   │   │   ├── ads_tab.py\n│   │   │   ├── run_tab.py\n│   │   │   └── log_tab.py\n│   │   └── *_dialog.py         # PayPal 批量 \u002F 手机号绑定 \u002F GCash 订阅 \u002F QR 出码\n│   ├── modules\u002F                # 业务模块（一个模块 = 一条业务链路）\n│   │   ├── register_account.py       # 注册主流程\n│   │   ├── register_rpc.py           # 调 vendor\u002Fregister-protocol RPC\n│   │   ├── ads_ui_signup*.py         # AdsPower UI 建号\n│   │   ├── open_plus.py              # 卡池开通 Plus\n│   │   ├── refresh_at.py             # AT 刷新 \u002F SID 轮换\n│   │   ├── discount_eligibility.py   # 开通前优惠预检\n│   │   ├── duola_cards.py            # Duola 卡商 SDK\n│   │   ├── external_open.py          # CDK 开通（chong SaaS）\n│   │   ├── external_redeem.py        # CDK 兑换（chong SaaS）\n│   │   ├── paypal_links.py           # PayPal 批量取链\n│   │   ├── gcash_*.py                # GCash 资格 \u002F 订阅\n│   │   ├── phone_bind.py             # 手机号绑定 + CPA\n│   │   ├── cpa_pack.py               # CPA JSON 打包\n│   │   └── cha_qr_test.py            # QR 出码测试\n│   ├── workflow\u002F               # 编排层\n│   │   ├── account_workflow.py       # 单账户完整链路\n│   │   ├── pool_runner.py            # 单池调度（注册 or 开通）\n│   │   ├── dual_pool_runner.py       # 双池并发（注册补水位 + 开通消费）\n│   │   ├── batch_runner.py           # 通用批量执行器\n│   │   └── batch_opener.py           # 批量开通\n│   └── shared\u002F                 # 通用层\n│       ├── db.py                     # SQLite 单写线程池\n│       ├── config.py                 # config.json 读写\n│       ├── logger.py                 # 双输出：文件 + Qt signal → UI\n│       ├── ipweb_proxy.py            # IPWEB \u002F IPRoyal 代理池\n│       ├── ipweb_geo_data\u002F           # 9 国州\u002F市地理数据（IPWEB 格式，公开）\n│       ├── card_pool.py              # 卡池抽卡 \u002F 归还 \u002F 补卡\n│       ├── cdk_pool.py               # CDK 池（多渠道隔离）\n│       ├── email_pool.py             # 邮箱池\n│       ├── phone_pool.py             # 手机号池\n│       ├── account_status.py         # 账户状态机\n│       └── ...\n├── vendor\u002F\n│   └── register-protocol\u002F      # 自包含注册引擎（stdin\u002Fstdout JSON-RPC）\n│       ├── rpc_server.py             # 主进程入口\n│       ├── auth_flow.py              # OAuth 状态机\n│       ├── password_setup.py         # 设密链路\n│       ├── enable_totp_mfa.py        # TOTP 开启\n│       ├── enable_passkey_mfa.py     # Passkey 开启\n│       ├── relogin_with_password.py  # 密码 + TOTP 重登\n│       ├── relogin_with_passkey.py   # 密码 + Passkey 重登\n│       ├── phone_auth_flow.py        # 手机号注册\n│       ├── sentinel_browser.py       # Playwright Sentinel token 采集\n│       ├── icloud_mail_provider.py   # iCloud 邮箱池后台客户端\n│       ├── outlook_provider.py       # Outlook Graph API\n│       ├── imap_outlook_provider.py  # Outlook IMAP+OAuth\n│       ├── xpg_mail_provider.py      # XPGMail 面板\n│       ├── mail_provider.py          # CF Worker 邮箱\n│       ├── smsbower_mail_provider.py # SMSBower 内建邮箱\n│       ├── sms_provider.py           # HeroSMS 接码\n│       ├── passkey_virtual_authenticator.py  # 本地 WebAuthn\n│       └── ...\n├── docs\u002F\n│   ├── ARCHITECTURE.md         # 架构与数据流\n│   ├── SETUP.md                # 外部服务接入指南\n│   ├── refresh-at.md           # session 刷新协议详解\n│   ├── import-format.md        # 账号导入格式\n│   ├── paypal-links.md         # PayPal 取链接口\n│   ├── gcash-*.md              # GCash 相关\n│   ├── phone-bind-cpa.md       # 手机号绑定 + CPA 生成\n│   └── superpowers\u002F            # 迭代过程中的规格文档\n│       ├── plans\u002F\n│       └── specs\u002F\n├── scripts\u002F\n│   ├── extract_ipweb_geo.py    # 从 IPWEB xlsx 抽州市数据\n│   └── fill_geo_zh_names.py    # 补中文城市名\n├── tests\u002F\n│   ├── test_cdk_pool_and_geo.py\n│   └── test_relogin_proxy_rotate.py\n├── ph_plus_auto.py             # PH-Link 提链 + Stripe 绑卡 + checkout 全链路\n├── ads_launcher.py             # AdsPower 远端浏览器管理\n├── config.example.json         # 配置模板（首次启动自动复制为 config.json）\n├── requirements.txt\n├── LICENSE                     # MIT\n├── SECURITY.md                 # 安全 \u002F 隐私说明\n└── README.md\n```\n\n---\n\n## 十个 Tab 一览\n\n| Tab | 主要能力 |\n| --- | --- |\n| **账户列表** | 导入 \u002F 查看 \u002F 筛选 \u002F 批量右键（查订阅、GCash 硬查、PayPal 批量取链、手机号绑定 + CPA、复制完善 SESSION、出库 CSV、标记作废） |\n| **邮箱池** | 邮箱源管理（iCloud \u002F Outlook \u002F xpgmail \u002F CF Worker） |\n| **卡池** | 抽卡 \u002F 归还 \u002F 补卡（Duola）\u002F 手动导入 \u002F 卡状态 |\n| **CDK** | 多渠道（upi \u002F kakao \u002F pix \u002F gcash \u002F ideal \u002F paypal）CDK 池，导入 \u002F 分配 \u002F 状态跟踪 |\n| **手机号池** | E.164 手机号 + poll_url 批量导入，每号最多绑 3 号，供 CPA 生成用 |\n| **代理** | IPWEB \u002F IPRoyal \u002F 自定义 socks5 \u002F http 代理列表，出口国切换 |\n| **账单** | 各 SaaS 服务的 api_key \u002F base_url 配置（cha \u002F chong \u002F duola \u002F captcha） |\n| **ADS** | AdsPower 远端浏览器配置、profile 池管理 |\n| **运行** | 双池并发调度：注册补水位 + 开通消费；单池单流程；停止\u002F进度\u002F统计 |\n| **日志** | 分级 \u002F 分账户 \u002F 分线程 \u002F 人话化的实时日志（Qt signal 转发） |\n\n---\n\n## 外部服务接入\n\n详见 [`docs\u002FSETUP.md`](docs\u002FSETUP.md)。这里只给结论：\n\n- **注册模式**（`runtime.register_mode`）：`remote-ui` = AdsPower UI 建号；`protocol` = 走 `vendor\u002Fregister-protocol` 协议链路（更快但风控更容易命中）。\n- **邮箱源**（`mail.email_source`）：`random`(CF Worker) \u002F `outlook` \u002F `xpgmail` \u002F `icloud`。四选一，`icloud` 需自建后台。\n- **开通模式**（`runtime.open_mode`）：`bind` = 卡池 PH-Link 绑卡；`cdk` = CDK 兑换充值（需 chong SaaS）。\n- **代理**（`ipweb` \u002F `proxies` \u002F `iproyal`）：至少配一样，`ipweb.mode=http_sid` 是最常用的动态住宅方案。\n- **风控**：注册量大时打开 `captcha.enabled=true` 接 hCaptcha 求解器。\n\n---\n\n## 常见工作流\n\n### A. 单纯\"完善 SESSION\"（0 外部依赖）\n\n1. 启动 GUI\n2. 账户列表 → 粘贴导入：`session-token` 一行一个 \u002F 或 `email----password----totp----session----AT`\n3. 右键 → **复制完善 SESSION** → 剪贴板得到 chatgpt.com 官网同款 JSON\n\n### B. 批量查订阅\n\n1. 账户列表选中若干行\n2. 右键 → **查询订阅** → 列表显示 plan \u002F plus_verified\n3. 支持 AT 失效自动密码 + TOTP 重登（前提是账号有 password + totp_secret）\n\n### C. 批量开通 Plus（需卡池 + PH-Link + 代理）\n\n1. **代理** Tab 配一条能过 CF 的代理\n2. **卡池** Tab 导入卡或配 Duola 自动开卡\n3. **账单** Tab 填 `cha.api_key`\n4. 账户列表选择状态 = `REGISTERED \u002F AT_OK` 的账号\n5. **运行** Tab → 单池 open 模式 → 启动\n\n### D. CDK 兑换开通\n\n1. **CDK** Tab 导入 UPI \u002F KakaoPay \u002F 等 CDK 码\n2. **账单** Tab 填 `chong.api_key`\n3. `runtime.open_mode = cdk`，选好 `cdk_channel`\n4. **运行** Tab 启动\n\n### E. 手机号绑定 + 生成 CPA（Codex refresh_token）\n\n见 [`docs\u002Fphone-bind-cpa.md`](docs\u002Fphone-bind-cpa.md)。\n\n---\n\n## 开发与测试\n\n```bash\n# 单元测试\npython tests\u002Ftest_cdk_pool_and_geo.py\npython tests\u002Ftest_relogin_proxy_rotate.py\n\n# Headless UI smoke（不弹窗，验证组件能实例化）\npython -c \"from PyQt6.QtWidgets import QApplication; import sys; app=QApplication(sys.argv); from src.ui.main_window import MainWindow; MainWindow()\"\n```\n\n**编码风格约定**：\n\n- 新增业务模块 → `src\u002Fmodules\u002F\u003Cname>.py`，暴露一个纯函数入口（不要 QThread，UI 层再包）\n- 长时任务 → `src\u002Fui\u002Ftabs\u002Fsessions\u002Fworkers.py` 里加 QThread 子类，或用 `src\u002Fworkflow\u002Fbatch_runner.py`\n- DB 写 → 一律走 `DBWriter.get().submit(sql, params)`（单写线程避免锁竞争）\n- 日志 → `logging.getLogger(__name__)`，用 `LogCtx.bind(email); LogCtx.stage(\"register\")` 打上下文\n\n**调试脚本命名约定**：以 `_tmp_` \u002F `_test_` \u002F `_bind_` \u002F `_last_` 开头，`.gitignore` 会兜住不进 git。\n\n---\n\n## 进一步阅读\n\n| 文档 | 内容 |\n| --- | --- |\n| [`docs\u002FARCHITECTURE.md`](docs\u002FARCHITECTURE.md) | 五模块架构（注册 \u002F 完善 \u002F 开通 \u002F 外部 \u002F 变现），数据流、状态机、线程模型 |\n| [`docs\u002FSETUP.md`](docs\u002FSETUP.md) | 外部服务接入清单、CF Email Worker 部署样例、Duola \u002F cha \u002F chong 配置示范 |\n| [`docs\u002Frefresh-at.md`](docs\u002Frefresh-at.md) | Session 刷新协议详解（对齐 cha 线上抓包） |\n| [`docs\u002Fimport-format.md`](docs\u002Fimport-format.md) | 账号 3 种导入格式 |\n| [`docs\u002Fpaypal-links.md`](docs\u002Fpaypal-links.md) | PayPal 批量取链 API |\n| [`docs\u002Fgcash-eligibility-check.md`](docs\u002Fgcash-eligibility-check.md), [`docs\u002Fgcash-pay.md`](docs\u002Fgcash-pay.md) | GCash 资格硬查 + 订阅创建 |\n| [`docs\u002Fphone-bind-cpa.md`](docs\u002Fphone-bind-cpa.md) | 手机号绑定 + Codex PKCE 生成 CPA |\n| [`docs\u002Fsuperpowers\u002F`](docs\u002Fsuperpowers\u002F) | 迭代过程中的 spec \u002F plan（历史设计文档，未删） |\n| [`SECURITY.md`](SECURITY.md) | 提交前敏感串检查清单 |\n\n---\n\n## 免责声明\n\n本项目按 **MIT** 协议开源，**仅供技术研究**：\n\n- 仓库不附带任何真实账号、卡号、代理凭证、API Key、TOTP secret、Recovery code、cookie、\n  session token。示例配置全部是占位符，测试用例都是 mock。\n- 使用本代码接触真实 OpenAI 账号 \u002F 真实支付流程 \u002F 真实代理服务，产生的账号封停、支付纠纷、\n  法律风险，全部由使用者自行承担。\n- 作者 **不对**代码可用性、正确性、稳定性作任何保证。协议 \u002F API \u002F 风控随时可能被服务方\n  调整，历史 commit 里的抓包结论在你 clone 那一刻可能就已经过时。\n","gpt_nerver 是一个用于本地化批量管理与开通 ChatGPT Plus 订阅的桌面自动化工具。基于 PyQt6 构建图形界面，集成 JSON-RPC 注册引擎，支持协议\u002F浏览器双模式建号（含 iCloud\u002FOutlook\u002FCF Worker 邮箱、TOTP\u002FPasskey 多因子认证）、登录态维护（AT 刷新与自动重登）、虚拟卡（Duola）绑定、CDK 兑换、PayPal\u002FGCash 订阅链路等全链路操作。所有账号、卡池、CDK 数据本地 SQLite 存储，强调可审计性与可控性。适用于合规场景下的开发者测试、小规模团队订阅运维及自动化流程研究，不依赖 OpenAI 官方 API 密钥，但需用户自备代理、邮箱服务及可选 SaaS 接口密钥。",2,"2026-08-17 02:30:08","CREATED_QUERY"]