# GLM Coding 抢购助手 v4.6 智谱 GLM Coding Plan 限时抢购自动化脚本(Tampermonkey 油猴脚本) ## 功能特点 - **极速并发引擎** — 双模式并发:极速模式 10 路 + 普通模式 5 路,任一成功立即取消其余 - **自适应间隔** — 前 20 次零延迟爆发 → 30ms 快速重试 → 100ms 随机间隔,带 ±30% 抖动 - **preview + check 双重校验** — 获取 bizId 后调用 check 确认有效,EXPIRE 立即重试 - **4 层支付恢复** — 暴力清弹窗 → 缓存重点击 → 直接获取支付链接 → 兜底提醒 - **反检测** — 请求指纹随机化(X-Request-Id / X-Timestamp / Accept-Language)、JSON.parse 定向拦截、fetch/XHR toString 伪装、Shadow DOM 面板隔离 - **高精度定时** — requestAnimationFrame + performance.now,精度 ±2ms - **配置持久化** — localStorage 保存所有配置,sessionStorage 保存捕获的请求,刷新不丢失 - **弹窗自动恢复** — MutationObserver 监控弹窗,自动关闭并重新触发,最多 3 次 - **快捷键** — `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. 右上角出现控制面板 3. **手动点一次购买按钮** — 脚本捕获请求参数(面板显示"已捕获") 4. 选择触发方式: - **主动抢购**:立即开始并发重试 - **定时触发**:设定时间(默认 10:00:00),到点自动开始 5. 抢购成功后自动弹出支付页面 ## 配置参数 | 参数 | 默认值 | 说明 | |------|--------|------| | 并发路数 | 5 | 普通模式同时发起的请求数 | | 极速并发 | 10 | 前 5 秒的高并发路数 | | 极速时长 | 5s | 高并发持续多久 | | 最大重试 | 2000 | 达到上限后停止 | | 爆发次数 | 20 | 前 N 次零延迟 | | 快速间隔 | 30ms | 爆发后的重试间隔 | | 慢速间隔 | 100ms | 后期重试间隔中值 | | 抖动 | ±30% | 间隔随机化幅度 | | 抢购时间 | 10:00:00 | 每天定时触发时间 | ## 快捷键 | 快捷键 | 功能 | |--------|------| | `Alt + S` | 启动主动抢购 | | `Alt + X` | 停止所有操作 | | `Alt + H` | 隐藏/显示面板 | ## 工作原理 ``` 用户点击购买 → 脚本捕获 preview 请求 ↓ ┌── 极速模式 (前5秒) ──┐ │ 10路并发 × 零延迟 │ └──────────────────────┘ ↓ ┌── 普通模式 ──────────┐ │ 5路并发 × 自适应间隔 │ └──────────────────────┘ ↓ 任一获取 bizId ↓ check 校验 bizId ├── EXPIRE → 立即重试 └── 通过 → 成功! ↓ 4 层支付恢复 ├── 清除错误弹窗/遮罩 ├── 缓存响应 + 重点击购买 ├── 直接获取支付链接 └── 兜底提醒 ``` ## 更新日志 ### v4.6 (2026-04-10) - **修复** 支付弹窗不弹出 — 根因: 前端 `payComponent.isServerBusy=true` 阻止 `payPreviewFn` 发请求 - **新增** `patchSoldOut` 增加 `isServerBusy` 拦截(JSON.parse 层) - **新增** `patchVueServerBusy` 兜底:定时扫描 Vue 组件树,直接 patch `isServerBusy=false` - **新增** `forcePayDialog` 兜底:抢购成功 1.5s 后若弹窗未出现,直接设置 Vue `payDialogVisible=true` ### v4.5 (2026-04-10) - **修复** `findBuyButton` 找错按钮(匹配到"即刻订阅"导航按钮),优先找 `buy-btn` 类按钮 ### v4.4 (2026-04-09) - **新增** 极速模式:前 5 秒 10 路并发,之后降为 5 路 - **新增** 请求指纹随机化(X-Request-Id / X-Timestamp / Accept-Language 权重随机) - **新增** 余额支付方式支持 - **优化** 并发数从 3 路提升到 5 路(普通模式) - **优化** 最大重试从 500 提升到 2000 - **优化** 爆发次数从 10 提升到 20,快速间隔从 50ms 降到 30ms - **优化** 连续售罄 / 限流智能退避 ### 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 中失效 ### v4.0 (2026-04-08) - 并发重试(Promise.race 变体) - 自适应间隔(爆发→快速→随机抖动) - 反检测(定向拦截、toString 伪装、Shadow DOM) - 高精度定时(rAF + performance.now) - 配置/请求持久化 - MutationObserver 弹窗监控 - 快捷键、离开保护 ### v3.2 (原版) - 单线程串行重试 - preview + check 双重校验 - 错误弹窗自动恢复 - 浮动控制面板 ## License MIT