# GLM Coding 抢购助手 v4.0 智谱 GLM Coding Plan 限时抢购自动化脚本(Tampermonkey 油猴脚本) ## 功能特点 - **并发重试** — 3 路并发请求,任一成功立即返回(比单线程快 3x) - **自适应间隔** — 前 10 次零延迟爆发 → 快速重试 → 随机间隔,带 ±30% 抖动 - **preview + check 双重校验** — 获取 bizId 后调用 check 确认有效,EXPIRE 立即重试 - **4 层支付恢复** — 暴力清弹窗 → 缓存重点击 → 直接获取支付链接 → 兜底提醒 - **反检测** — JSON.parse 定向拦截(不污染全局)、fetch/XHR toString 伪装、Shadow DOM 面板隔离 - **高精度定时** — requestAnimationFrame + performance.now,精度 ±2ms - **配置持久化** — localStorage 保存并发数/上限等配置,sessionStorage 保存捕获的请求 - **错误弹窗自动恢复** — MutationObserver 监控弹窗出现,自动关闭并重新触发购买 - **TCP 预热** — 提前建立连接,减少首次请求延迟 - **快捷键** — `Alt+S` 开始 / `Alt+X` 停止 / `Alt+H` 隐藏面板 ## 安装 ### 方式 1:从 GitHub Raw 安装(推荐) 1. 安装 [Tampermonkey](https://www.tampermonkey.net/) 浏览器扩展 2. 点击安装:[glm-rush-v4.user.js](https://raw.githubusercontent.com/qtaxm/glm-rush/master/glm-rush-v4.user.js) 3. Tampermonkey 自动弹出安装页面,点击 **安装** ### 方式 2:手动安装 1. 复制 `glm-rush-v4.user.js` 的内容 2. 打开 Tampermonkey → 添加新脚本 → 粘贴 → 保存 ## 使用方法 1. 打开 [GLM Coding 页面](https://bigmodel.cn/glm-coding) 2. 右上角出现 **GLM v4.0** 控制面板 3. **手动点一次购买按钮** — 脚本捕获请求参数(面板显示"已捕获") 4. 选择触发方式: - **主动抢购**:立即开始并发重试 - **定时触发**:设定时间,到点自动开始 - **预热**:提前建立 TCP 连接 5. 抢购成功后自动弹出支付页面 ## 控制面板 ``` ┌─────────────────────────┐ │ GLM v4.0 [-] │ ├─────────────────────────┤ │ ● 重试中... 45/500 │ │ 已捕获: POST .../preview│ │ │ │ [重试:45] [成功:0] [错误:3] │ │ │ │ 并发 [3] 上限 [500] │ │ 定时 [--:--] [设定] │ │ │ │ [▶ 主动抢购] [停止] [预热]│ │ │ │ 10:00:01 捕获 preview │ │ 10:00:01 #3 系统繁忙 │ │ 10:00:02 #15 售罄 │ │ 10:00:03 成功! bizId=xx │ └─────────────────────────┘ ``` ## 配置参数 | 参数 | 默认值 | 说明 | |------|--------|------| | 并发数 | 3 | 同时发起的请求数 | | 最大重试 | 500 | 达到上限后停止 | | 爆发次数 | 10 | 前 N 次零延迟 | | 快速间隔 | 50ms | 爆发后的重试间隔 | | 慢速间隔 | 150ms | 后期重试间隔中值 | | 抖动 | ±30% | 间隔随机化幅度 | ## 快捷键 | 快捷键 | 功能 | |--------|------| | `Alt + S` | 启动主动抢购 | | `Alt + X` | 停止所有操作 | | `Alt + H` | 隐藏/显示面板 | ## 工作原理 ``` 用户点击购买 → 脚本捕获 preview 请求 ↓ ┌── 并发路1 ──┐ ├── 并发路2 ──┤ → 任一获取 bizId └── 并发路3 ──┘ ↓ check 校验 bizId ├── EXPIRE → 立即重试 └── 通过 → 成功! ↓ 4 层支付恢复 ├── 清除错误弹窗/遮罩 ├── 缓存响应 + 重点击购买 ├── 直接获取支付链接 └── 兜底提醒 ``` ## 注意事项 - 需要先登录智谱账号 - 抢购前建议先点一次购买按钮让脚本捕获请求参数 - 建议在抢购开始前 3 秒点击 **预热** 按钮 - 如果支付弹窗未出现,脚本会自动尝试多种恢复策略 ## 更新日志 ### v4.1 (2026-04-08) - **修复** 售罄状态下按钮不可点击的问题(恢复全局 JSON.parse patch) - **修复** 支付弹窗不弹出的问题(4 层恢复策略:清弹窗→缓存重点击→获取支付链接→兜底提醒) - **修复** `@match` 规则不匹配 `bigmodel.cn`(无 www)的问题 - **修复** 原型链污染风险(Object.keys + WeakSet 循环引用保护) - **修复** HTTP 401/403 会话过期检测(之前永远不会触发) - **修复** 限流退避使用错误的计数器 - **修复** stats.errors 永远显示 0 - **修复** Alt+H 快捷键在 Shadow DOM 中失效 - **修复** `_glmShadow` 暴露在全局作用域 ### v4.0 (2026-04-08) - 并发重试(3 路 Promise.race) - 自适应间隔(爆发→快速→随机抖动) - 反检测(定向拦截、toString 伪装、Shadow DOM) - 高精度定时(rAF + performance.now) - 配置/请求持久化(localStorage + sessionStorage) - MutationObserver 弹窗监控 - TCP 预热、快捷键、离开保护 ### v3.2 (原版) - 单线程串行重试 - preview + check 双重校验 - 错误弹窗自动恢复 - 浮动控制面板 ## License MIT