Recover stalled platform progress and missing saves with bounded reloads

This commit is contained in:
2026-10-12 18:08:54 +08:00
parent 1f6706efbb
commit 27293ad195
8 changed files with 173 additions and 25 deletions
+28 -6
View File
@@ -1,6 +1,6 @@
# 学员中心 · 2倍速学习助手使用说明
适用版本:**1.4.2**。浏览器设置核对日期:**2026-10-06**。
适用版本:**1.4.3**。浏览器设置核对日期:**2026-10-06**。
[仓库首页](README.md) · [脚本文件](icampus-study-helper.user.js) · [更新记录](CHANGELOG.md)
@@ -37,9 +37,9 @@ Chrome不能在无痕窗口内安装扩展,应先普通窗口安装再允许
2. 点击文件页面的“下载”,或打开“原始文件 / Raw”后保存。文件应名为 `icampus-study-helper.user.js`,不能是仓库HTML网页或误存的 `.txt`。下载整个仓库压缩包的用户先解压。
3. 点击篡改猴图标 →“管理面板 / Dashboard”→“实用工具 / Utilities”。
4. 找到“从文件导入 / Import from file”文件选择按钮,选中该 `.user.js`。
5. 在安装/导入页面核对名称“学员中心 · 2倍速学习助手”和版本 **1.4.2**,按提示确认安装或更新。仅选择文件不等于安装完成。
5. 在安装/导入页面核对名称“学员中心 · 2倍速学习助手”和版本 **1.4.3**,按提示确认安装或更新。仅选择文件不等于安装完成。
6. 回到“已安装脚本”,确认开关开启。
7. 刷新课程页,确认左下角版本为 **1.4.2**。
7. 刷新课程页,确认左下角版本为 **1.4.3**。
篡改猴导入入口见 [官方导入导出说明](https://www.tampermonkey.net/faq.php?locale=zh&q=Q106)。界面文字可能因版本不同而变化;若该入口不接受 `.user.js`,直接用下一节复制方式,无需将脚本改成JSON。
@@ -149,6 +149,27 @@ Chrome不能在无痕窗口内安装扩展,应先普通窗口安装再允许
不要在正在手动填写尚未保存答案时直接刷新。普通刷新不会清除本地答案记忆和启动意图,但页面尚未提交的输入可能丢失。
### 进度停滞自动刷新
1.4.3在已启动的自动视频流程中检测异常,超时后保存恢复状态、暂停旧播放器、刷新当前网页并接续,不需要再次点开始。
| 异常 | 前台等待时间 | 行为 |
| --- | --- | --- |
| 新视频加载未就绪 | 90秒 | 尝试刷新恢复 |
| 视频已请求播放但未开始推进 | 20秒 | 尝试刷新恢复 |
| 已在播放的视频位置不再推进 | 超过60秒 | 尝试刷新恢复 |
| 未收到当前视频的保存确认 | 超过75秒 | 尝试刷新恢复 |
| 保存请求成功,但平台返回的位置与学习进度均无增长 | 超过120秒 | 尝试刷新恢复 |
| 视频自然结束,但平台未确认该资源完成 | 超过25秒 | 刷新重新核对,不直接跳过 |
后台相关窗口延长至至少180秒;返回前台后的20秒内允许网站恢复保存。实际检查时刻还受后台定时器限制。
检测会区分视频实际位置、平台保存位置和课程百分比。百分比取整暂时不变、但保存位置在前进时,不会误判;任一平台计数真实增长也会延后判定。没有返回可用的计数字段时,不把缺失字段当成零;仍可通过“没有保存确认”或“视频不动”检测恢复。平台已确认资源完成时,不再要求其进度继续增长。
**所有恢复原因共享每段视频每次运行一次的自动刷新额度,普通和自动刷新后仍保留已用额度。** 恢复后同一视频仍异常时保持启用但等待人工处理,避免刷新循环;处理问题后可手动恢复,人工取消再开始才属于新一轮运行。
这些检查只在自动视频流程中触发。手动暂停、正在等待测验、需要手动答题、浏览器明确拒绝自动播放、登录失效或前置未解锁等情况仍按提示处理。刷新无法保证解除平台限制或断网问题。
## 8. 自动测验与答案记忆
当前流程可能先处理本门未合格测验,再继续视频。支持每题最多8个不同文字选项的单选、判断、多选。
@@ -165,7 +186,7 @@ Chrome不能在无痕窗口内安装扩展,应先普通窗口安装再允许
Chrome经常回收课程页时,可在“设置 → 性能 → 始终保持活跃的网站”添加 `icampus.yunyinsh.com`。笔记本节能也可能减少后台活动,可根据电源情况调整。参考 [Chrome性能帮助](https://support.google.com/chrome/answer/12929150?hl=en)。
后台模式保留网站原有的正常播放和进度保存定时器,不改写真实页面可见状态、视频位置,不伪造或重放进度请求。关闭后台模式、停止助手或离开页面后恢复正常处理。后台等待和运行锁窗口至少180秒,回前台后给保存20秒恢复时间;仍无保存确认会等待处理。休眠、关闭浏览器、冻结/丢弃标签页、断网仍无法保证继续。
后台模式保留网站原有的正常播放和进度保存定时器,不改写真实页面可见状态、视频位置,不伪造或重放进度请求。关闭后台模式、停止助手或离开页面后恢复正常处理。后台等待和运行锁窗口至少180秒,回前台后给保存20秒恢复时间;仍无保存确认则按一次恢复额度刷新,额度已用则等待处理。休眠、关闭浏览器、冻结/丢弃标签页、断网仍无法保证继续。
无痕使用需允许扩展无痕运行并刷新实际课程页。普通和无痕站点数据隔离,答案记忆、开关及状态不自动共用;所有无痕窗口关闭后站点数据通常清除。运行锁仅在同一站点存储环境内生效,不跨普通/无痕或不同浏览器,同账号请只运行一个页面。
@@ -203,6 +224,7 @@ Chrome经常回收课程页时,可在“设置 → 性能 → 始终保持活
| 课程重名 | 手动进入目标课程,选仅当前课程 |
| 登录、前置限制、无保存确认 | 按平台提示处理后刷新,同一标签页可接续 |
| 视频没有声音 | 如勾选了全过程静音,先关闭该开关;再检查播放器原有静音状态或受限播放的静音回退 |
| 进度长期不动或没有保存确认 | 1.4.3会在超时后自动刷新一次并接续;仍失败时检查网络、登录和平台状态,查看运行记录 |
| 只看到小型助手状态条 | 面板已收纳,点击状态条展开;收纳期间任务仍继续 |
| 想移动面板 | 拖动标题或收纳条;不要拖动表单或操作按钮 |
@@ -210,10 +232,10 @@ Chrome经常回收课程页时,可在“设置 → 性能 → 始终保持活
## 12. 验证与恢复边界
101项本地行为测试:16播放/进度、13测验、13媒体恢复、12后台、10持续运行/完成条件、17统计/自动播放回退、10全过程静音、10面板操作。覆盖低于100分但已合格换课、刷新接续、缺失时长、暂停预测、静音回退、面板位置保存、状态恢复、拖动误点击抑制和存储失败等情况。
116项本地行为测试:16播放/进度、13测验、13媒体恢复、12后台、10持续运行/完成条件、17统计/自动播放回退、10全过程静音、10面板操作、15进度停滞恢复。覆盖平台保存不增长、有响应但进度不变、取整误判、后台宽限、自然结束未确认、刷新后继续和共享额度,及原有播放、测验与面板功能。
面板另在本地模拟课程页面使用Playwright与预装Chrome验证:1280×900桌面及360×640窗口下的收起、展开、标题/状态条拖动、刷新保留、运行意图保留、屏幕边界和键盘展开均通过,无相关控制台错误。该验证只覆盖本地面板交互,没有更新用户浏览器中的已安装脚本;真实课程页和实际触屏设备尚未验证。
现场此前已观察到网页原生2倍速、平台保存响应及点击播放后恢复。全过程静音经过本地模拟测试,尚未在真实课程上验证。整体统计、估算和静音回退也尚未完成所有真实课程和长时间后台端到端验证,不能保证最终学分或全部课程结构兼容。
前台视频加载90秒未就绪、启动20秒未推进或播放停滞60秒时,会尝试一次刷新恢复,每段视频在一次运行内共享该额度。临时播放中断有界重试;播放权限拒绝不进入刷新循环。前台视频结束25秒仍无平台完成确认会等待,后台窗口更长。这些恢复不会伪造完成状态。
进度停滞检测与刷新恢复阈值见第7节,新增逻辑经过本地模拟回归,尚未在真实课程页验证。临时播放中断有界重试;播放权限拒绝不进入刷新循环。所有自动恢复均保留真实平台完成判断,不伪造状态。