Files
glm-rush/README.md

142 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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