【超星学习通助手】v2.40 更新:AI 答题 + 视频/文档/测验全任务流转,面板重做
先放结论:这是一个开源的超星学习通学习辅助脚本,**基础功能完全免费**,AI 答题需要自备一个 OpenAI 兼容的模型接口(用它自己的也行,用 DeepSeek、用本地 Ollama 都行)。脚本基于 [脚本猫 1693](https://scriptcat.org/zh-CN/script-show-page/1693)(作者 unrival,GPL-3.0-or-later)二次开发,维护者 li_stu。上游遗留的智慧树分支已整体移除,现在只覆盖超星体系。
---
## 这次 v2.40 改了什么
之前面板是标签页切来切去的,640px 高的表单展开就把课程卡片挤出首屏。这一版把这些体验问题一次性收了。
### 1. 面板重做:不再切标签
- 标题并进「任务配置」,不再单独占一张卡片;
- 「课程内容 / 章节测试」和「运行日志」两块**常驻显示、左右等高**,右栏日志自动填满剩余高度;
- **LLM 配置并进顶部「任务配置」**,点「展开设置」才展开,默认收起;
- 表单在面板渲染时就已经挂载,点开即用,不会停在「正在加载 LLM 配置…」;
- 窄于 900px 自动堆成单列;考试/作业页没有主面板时改为可拖动的浮层卡片。
### 2. 新增「跳过已作答」
页面上本来就有答案的题,不调 AI,也不等那 12 秒逐题风控间隔(只留 120ms 让步)。已答过的题越多,一轮扫描越快。
而且这些题会被记成「已处理」而不是「未作答」,收尾时单独标注「其中 N 题沿用页面已有答案」,不会因为误报把整章提交卡死。
### 3. 答题准确性
这块是重点,因为答案对不对是一回事,**点了没点上、漏答、误提交**是另一回事:
- **选项有序映射**:题目选项以有序描述符表示,不会把 `{ length: 0 }` 之类的元数据混进发给模型的选项;
- **严格解析**:单选/多选/判断只接受约定格式,普通英文说明、越界字母、重复文本导致的歧义一律判无效;
- **点击后回读**:每次点击立即回读真实选中状态,失败时依次尝试内部容器、原生控件、`aria-checked` 兜底;
- **提交门禁**:只有全部题目「填充成功且回读核验通过」才允许自动提交;零题、未处理题、题目切换、过期响应全部阻止提交;
- **凭证一致性**:手机题页与桌面题页共用同一套提交锁,按课程 `workId` 防重复提交。
### 4. 请求稳健性
- SSE 流式响应解析(`data:`、``、`delta.content`);
- 超时、失败重试(0–5,遇 429/5xx 退避 0.8~1.5s)、并发上限(1–6)都可调;
- 默认节奏:连接 5s、单次响应 22s、单题总等待 45s,超限即跳过该题,不拖死整场;
- 提示词固定前置,提升上游缓存命中率;面板统计调用次数、命中率与耗时;
- `/models` 可拉模型列表;配置可导出/导入 JSON,换设备不用重填。
### 5. 清掉三条死链路
题库比对、自研版本检查(`checkVersion()`)、智慧树残留分支 —— 这三条都没有调用方了,留着只会让后来的人以为还在用。删掉之后代码线干净很多。
---
## 支持的任务类型
| 类型 | 说明 |
| --- | --- |
| `video` | 视频播放,按平台要求上报观看进度 |
| `document` | 文档 / PPT 阅读任务 |
| `work` | 章节测验、作业 |
| `book` | 图书阅读任务 |
| `hyperlink` | 外链任务 |
| `microCourse` | 速课任务 |
| `live` | 直播回放进度上报 |
调度器是单一 500ms 入口,有重入保护、超时回收和「只结束一次」的释放语义。未知任务与同步异常会标记失败并写日志,不会静默卡住。
---
## 稳定性
- **单实例运行**:心跳租约(TTL 30s),同一顶层窗口只有一个执行者,过期自动让位;
- **同账号多窗口**:会话表(10 分钟 TTL)检测并提示「另一窗口正在学习不同课程」;
- **图片/听力题文本化**:纯字符串分词器,不依赖 DOM 与 `innerHTML`,过滤 `javascript:` / `data:` / `blob:` 等来源,图片不上传任何第三方。
---
## 关于权限,说清楚
需要 `GM_xmlhttpRequest`、`GM_setValue`、`GM_getValue`、`GM_info`、`GM_getResourceText`、`unsafeWindow`。
`@connect` 一共 8 条,每条都有代码对应:
| 域名 | 用途 |
| --- | --- |
| `passport2-api.chaoxing.com` | 平台登录态校验 |
| `zhibo.chaoxing.com` | 直播回放进度上报 |
| `pan-yz.chaoxing.com` | 只用于图标与日志截图,不发起接口请求 |
| `api.deepseek.com` / `nuoapi.net` / `localhost` / `127.0.0.1` | 内置 AI 预设 |
| `*` | 你在设置里自填的任意 OpenAI 兼容接口,域名没法预先枚举 |
`*` 这条肯定有人会问。它只在你填了自定义接口地址时才会用到,不是脚本主动往外发东西。所有 `GM_xmlhttpRequest` 的调用点都能在源码里搜到。
**API Key 只存在你本机浏览器的油猴沙箱里**,不写源码、不随脚本分发、也不会传到作者这边。它只会作为请求头发给你自己配的那家服务商。
---
## 关于「获取密钥」那个按钮
面板里有一个「获取 NuoAPI 密钥」的链接。**说明一下:它是裸注册地址,不带任何推广参数,我不会从中拿到分成。**
它可以理解成「如果你懒得找服务商,这是一个现成的 OpenAI 兼容接口」。你也可以完全不用它:选「自定义」接任意服务商,或者选「Ollama 本地」跑本地模型,功能一模一样。
元数据里保留了 `@antifeature payment`,如实声明脚本会请求第三方付费 AI 接口。
---
## 装之前要注意
- 需要 **Tampermonkey / Violentmonkey / ScriptCat** 之一;
- 平台改版会导致脚本失效,遇到问题欢迎回帖,附上运行日志截图最好;
- 不保证 AI 答案正确率,最终判断还得你自己把关;
- 基础任务(视频、文档、图书、外链、速课、直播)不需要 AI,不配接口也能正常跑。
---
## 免责
本项目仅供学习与技术研究。请遵守所在学校/平台的用户协议与学术规范,不要用它代替本人完成应当独立完成的考核。
许可证 **GPL-3.0-or-later**,源码完整可查。代码线:脚本猫 379《正则脚本》(张正则)→ 丶谢 二开 → unrival(脚本猫 1693)→ li_stu(当前维护)。
---
有 bug 或者想加功能直接回帖说,能复现的我都会修。日志截图比「不好使」三个字有用一万倍。
{:4_89:}脚本目前还有些问题但已经在努力修复了. 感谢分享,下载试试!!
页:
[1]