当前版本:4.0.0
学习通课程助手是一个脚本猫用户脚本。安装后,学习通课程页面右下角会出现控制面板,可统一查看课程任务点、视频、音频、题目和多个播放器页面的处理进度。
本项目目标是在你已经打开的课程页面内统一管理本地待办、媒体、题目、阅读/PPT、完成确认和运行诊断,不需要在课程之间来回切换。
运行边界:
1x,可在控制面板调整为 0.5x 至 16x。mid/objectId/jobId 建立稳定任务身份,结合附件、目录和页面提示交叉确认完成状态。全新安装时待办队列是空的,按下面三步走:
之后要添加别的课程,重复第 1、2 步追加即可,已完成的任务不会重复入队。
XXT-ScriptCat.user.js 导入脚本猫。脚本会保存启动状态。下次打开匹配的课程页面时,会继续使用上次的设置。
控制面板采用紧凑浅色浮窗:标题栏显示版本和运行状态,中央导航用于切换进度、待办、题库管理和日志,设置与任务操作分组排列。点击标题栏右侧的 − 可最小化,面板会记住展开状态。
| 控件 | 作用 |
|---|---|
| 启动 / 暂停 | 开始或暂停当前待办队列和媒体处理 |
| 播放倍速 / 媒体音量 | 设置视频和音频的播放速度与音量,默认静音 |
| 详情页自动进入任务点 | 进入课程详情后打开第一个未完成任务点 |
| 待办列表 | 查看课程分组、排队和完成状态 |
| 题库管理 | 检索编辑题库、裁决复核队列、配置远程题库、查看统计 |
| 查看进度 | 打开任务点、媒体、题目和 iframe 的详细状态窗口 |
| 日志输出 | 打开实时日志窗口,可暂停滚动、清空或导出文本日志 |
| 从目录生成待办 | 扫描当前页面目录,生成或刷新待办队列 |
| 导入待办 / 清空待办 | 导入 JSON 待办文件;或显式清空全部待办(需二次确认) |
| 导入题库 / 题库文件 | 粘贴或选择 JSON 题库文件导入 |
| 未匹配题目 | 查看并导出题库中没有答案的题目 |
| 导出设置 / 导入设置 | 备份或恢复倍速、音量、推进模式和窗口设置 |
| 撤销导入 | 回滚最近一次题库或设置导入 |
全新安装默认倍速为 1x。从旧版本升级时会保留之前设置的倍速,可直接在控制面板改为 1。
当前版本不再自动扫描课程首页,也不在课程之间自动刷新或跳转。待办队列由你在当前页面显式生成或导入。
待办窗口提供:
账号或学期变化时,队列会暂停并在状态栏提示原因,待办数据完整保留,不会被清空。
点击“查看进度”可以查看:
任务点总数来自当前页面已经渲染的课程目录。目录处于折叠状态时,统计结果可能只包含当前已展开的部分。
点击“导入题库”,粘贴一个 JSON 对象。题目作为键,答案作为值:
{
"中国近代史的开端是?": "鸦片战争",
"单选题示例": "A",
"多选题示例": ["A", "C"],
"填空题示例": "示例答案",
"多个填空题示例": ["答案一", "答案二"]
}
使用说明:
A,C 或 AC。| 分隔。对 / 错 / 正确 / 错误 / 是 / 否 / √ / ×。在「题库管理 → 远程题库」填写接口地址与字段路径即可接入自建或第三方题库。
| 字段 | 说明 |
|---|---|
| 名称 | 用于区分来源 |
| 接口地址 | 必须 http:// 或 https:// |
| 答案字段路径 | 点号路径,例如 data.answer |
| 题干字段路径 | 请求体中题干参数名,默认 question |
| 相似度字段路径 | 可留空 |
字段路径只支持点号和数字下标,不支持表达式或代码。保存后会自动测试一次连通性。
默认不连接任何服务。 不填写任何地址时脚本不会发出网络请求;只有当你显式添加并启用题库地址后,脚本才会向该地址请求答案。每个题库的请求数、成功数和失败原因在界面中可见。
Cookie、Host、Origin 等)会被强制丢弃。确认脚本猫中脚本已经启用,然后刷新学习通课程页面。脚本当前匹配学习通和学银在线域名。
当前版本不再自动扫描课程首页。请打开课程目录或课程详情页,点击「从目录生成待办」;或点击「导入待办」导入已有队列。
账号、学期或课程列表与待办记录不一致时会暂停队列并提示,待办数据会完整保留,不会丢失。可以继续执行,或用「从目录生成待办」把新环境的任务合并进来,或显式「清空待办」。
先点击“启动”,再查看进度窗口中的媒体数量。浏览器首次阻止自动播放时,可手动点击一次播放器的播放按钮。
分三种情况,可在题库管理界面查看:
requested 阶段,说明请求还没回来。默认不配置远程题库时不会出现这个阶段。不同原文的题目在去题号、统一括号后被归一到同一个键。旧版本会静默丢掉一条,现在保留先写入的一条并报告碰撞,请在检索页核对是否真的重复。
脚本会自动重试最多 3 次。网络恢复后点击“继续队列”会重置当前媒体并重新尝试;仍失败时可刷新课程页面或稍后再处理。
媒体播放结束后,脚本最多等待 30 秒让学习通更新任务完成状态。超时后队列会暂停,当前待办仍保持“进行中”。请确认页面网络和任务状态,再点击“继续队列”重新等待,不会直接跳到下一项。
这个脚本还在持续改进,非常需要你在真实课程环境里帮忙测试——自动化测试只能覆盖模拟页面,学校定制模板、特殊题型和网络异常这些情况只能靠实际使用暴露出来。
遇到问题或有建议,欢迎到脚本页的「反馈」提出:
https://scriptcat.org/zh-CN/script-show-page/7021/issue
带上信息能大幅加快定位速度:
提交反馈时不需要提供账号密码。诊断包已经脱敏,但如果你仍不放心,可以先在文本编辑器里检查一遍再发送。请不要在反馈里粘贴真实用户名、手机号或完整课程链接。
点个关注或收藏,能让更多人看到它;也欢迎把使用体验写进评分,那是最直接的反馈。
待办与队列
题目与题库
navigator.locks 互斥和 BroadcastChannel 即时租约通知,跨子域继续使用 GM fencing。mid/objectId/jobId 建立稳定任务身份并去重。isPassed、目录标记和页面完成提示交叉确认;证据冲突会写入待办,不直接误判完成。MutationObserver 合并快速页面变化。data、嵌套 property.name、视频属性、播放器标题和媒体 URL 提取视频名称。originalTitle 中保留原目录标题。play() 导致的重复启动。ended 监听器,避免重复完成日志和旧状态闭包。1.3.1 旧扫描断点,缺少新字段时自动补齐会话结构。MouseEvent 时 view 参数类型转换失败的问题。readyState = 0 时也会初始化播放器并按间隔重试。<video class="vjs-tech"> 自身当作按钮查找容器的问题。XXT-ScriptCat.user.js。1x。