当前版本以 v3_optimized.js 为唯一源码,油猴版由构建脚本生成。它聚焦于稳定播放与课程导航:
这版的目标是保持原模板的行为方式,不再额外叠加复杂的后台保活、通知、测试按钮等附加层,尽量减少冲突。
仓库新增了独立的 DeepSeek 控制台版,通过本地服务调用 DeepSeek API,识别章节练习题并辅助作答。原有 V3 脚本入口保持不变。
如果当前小节先进入的是“学习目标”而不是视频页,脚本会尝试点击顶部的 2视频 / 视频 标签进入视频步骤。
说明:
- 这条路径已经按当前页面结构收紧,只走顶部视频标签,不再点击底部 下一节 按钮
- 原因是底部按钮在当前页面里可能触发额外调试/暂停逻辑,稳定性较差
进入视频页后,脚本会:
play()当前默认配置:
configs: {
playbackRate: 1.5,
autoplay: true,
retryInterval: 2000,
maxRetries: 10,
videoCheckInterval: 1000,
autoAdvanceNoVideo: false,
}
视频触发结束事件后,脚本会调用 nextUnit(),在课程目录树中定位到下一小节并点击进入。
如果当前不是视频而是“章节测验”页面,脚本会尝试点击:
#prevNextFocusNext
以跳过当前测验步骤并继续后续流程。
F12Console首次执行后可用:
app.run()
app.nextUnit()
默认不会自动跳过无法识别的无视频页面,避免在课件未完成时反复触发“当前章节还有任务未完成”的平台提示。控制台会给出明确日志;确认当前节点无需处理后,可手动执行 app.nextUnit()。
如果课程结构已确认安全,才可在控制台将 app.configs.autoAdvanceNoVideo = true,让脚本自动切换无视频小节。
AbortError常见报错:
The play() request was interrupted by a call to pause()
这通常不是视频坏了,而是:
脚本会优先尝试恢复播放,而不是立即判定失败。
如果同一页面反复粘贴执行脚本,会导致同一套监听和定时逻辑叠加,从而出现多次日志。
建议:
旧逻辑里曾经会在静音启动成功后恢复声音。当前建议使用持续静音方式,不再自动恢复。
目前这版已经验证:
2视频 标签可以程序化点击目前重点保留的是稳定性,不再继续叠加额外功能。
修改 v3_optimized.js 后,执行:
node scripts/build-userscript.mjs
node tests/verify-v3.mjs
第二条命令会验证两个入口的语法,并确认油猴脚本与唯一源码完全一致。
本项目仅用于脚本调试、前端自动化研究和页面行为分析,请遵守目标平台的使用规定。
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|