# 学员中心 · 2倍速学习助手 **中文简介**:icampus 学员中心的课程播放、进度与测验辅助脚本。 **English summary**: Learning userscript for icampus course playback, progress and quizzes. | 中文标签 | English topic | | --- | --- | | 教育 | `education` | | 用户脚本 | `userscript` | | 学习助手 | `learning-assistant` | 用于 [学员中心课程页](https://icampus.yunyinsh.com/course/) 的 Tampermonkey(篡改猴/油猴)脚本。支持 **2倍速播放、全过程静音、自动续播、测验作答和交卷、按平台合格状态换课、后台播放,以及整体进度和完成时间估算**。 当前版本:**1.4.3**。普通使用只需要桌面 Chrome 和篡改猴,无需安装 Node.js、Git 或运行命令。 **[获取脚本](icampus-study-helper.user.js) · [完整安装与使用说明](2倍速脚本使用说明.md) · [更新记录](CHANGELOG.md)** ## 快速安装 1. 在 Chrome 普通窗口打开 [篡改猴官方商店页面](https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo),点击“添加至 Chrome”。也可从 [篡改猴官网 Chrome 下载页](https://www.tampermonkey.net/index.php?browser=chrome) 进入。 2. 地址栏输入 `chrome://extensions`,找到 Tampermonkey →“详情”,按下表检查设置。 3. 在仓库打开 [icampus-study-helper.user.js](icampus-study-helper.user.js),使用文件页面的“下载”或“原始文件 / Raw”保存完整脚本。 4. 点击篡改猴图标 →“管理面板”→“实用工具”→“从文件导入 / Import from file”,选择下载的 `.user.js`,按提示安装。找不到该入口或不接受文件时,使用下方复制方法。 5. 登录课程网站并刷新,确认左下角显示 **“2倍速学习助手 · 1.4.3”**。打开课程列表,展开目标分组,选择范围并点击“开始”。停止时点击“人工取消”。 扩展应先在普通窗口安装,再按需允许在无痕窗口运行;参考 [Chrome 官方扩展帮助](https://support.google.com/chrome_webstore/answer/2664769?hl=en)。 ### 必要设置 | 设置 | 操作 | | --- | --- | | 扩展及脚本启用 | Tampermonkey扩展、篡改猴总开关、本脚本均保持启用 | | Chrome 138及以上 | Tampermonkey“详情”→ 开启 **允许用户脚本 / Allow User Scripts** | | Chrome 138以前的适用版本 | 扩展列表页右上角开启 **开发者模式** | | 网站访问权限 | 允许在 `https://icampus.yunyinsh.com` 自动运行,可用“在特定网站上”添加 | | 无痕窗口使用 | Tampermonkey“详情”→ 开启 **在无痕模式下启用 / Allow in incognito** | | 允许访问文件网址 | 文件导入、复制安装及本脚本的HTTPS页面运行不需要开启 | 按 Chrome 版本选择对应的用户脚本权限,不必一律同时开启开发者模式和“允许用户脚本”。修改后刷新课程页。依据:[Chrome 用户脚本文档](https://developer.chrome.com/docs/extensions/reference/api/userScripts)、[篡改猴权限说明](https://www.tampermonkey.net/faq.php?locale=zh&q=Q209)。 ### 也可以复制安装 打开脚本的“原始文件 / Raw”,复制**全部代码** → 篡改猴图标 →“添加新脚本”→ 在编辑器内全选删除默认模板 → 粘贴 → `Ctrl+S`保存 → 刷新课程页。 必须包含开头的 `// ==UserScript==` 配置块,不要复制行号、仓库网页文字或Markdown代码围栏。更新已有脚本时,在原脚本编辑器内替换全部内容,避免同时启用多份。 ## 当前版本特性 | 功能 | 当前行为 | | --- | --- | | 2倍速播放 | 正常播放,观察网站原有进度保存结果,不跳时间轴 | | 自动续播 | 视频自然结束且平台确认完成后切换下一段;等待新媒体加载并尝试恢复 | | 自动测验 | 支持文字单选、判断、多选,自动选择、交卷、确认交卷 | | 错题记忆 | 根据平台逐题反馈保留正确答案、排除错误选项或组合,未合格时重试 | | 动态合格判断 | 读取平台“已合格”结果,不写死合格分数,已合格不再重考 | | 课程完成判断 | **学习进度100%+平台判定测验合格**才换课;无需测验的课程只核对学习完成 | | 持续启用 | 开始后保持启用,同一标签页刷新可接续;“人工取消”清除启用状态 | | 后台播放 | 默认开启“切标签页继续播放”,保留网站正常播放和保存流程 | | 停滞自动刷新(新增) | 检测视频停滞、缺少保存确认、平台保存位置与进度不动及结束后未确认;超时刷新并接续,同一视频每次运行最多一次 | | 面板收纳与拖拽 | 点击“收起”变为状态条,点击“展开”恢复;拖动标题或收纳条移动,刷新记住位置和状态 | | 全过程静音 | 勾选后立即静音,切换课程/视频和播放器重建后继续静音,刷新保留偏好 | | 自动播放恢复 | 有声自动播放被拒绝时可尝试一次静音播放;仍失败则等待点击,避免定时空转 | | 整体进度 | 完成百分比、已完成/总课程数、平均学习进度、待合格测验数 | | 时间预测 | 显示预计剩余时长和完成日期时间;缺失时长用已知课程均值粗估并标明 | | 范围与排错 | 按可见列表顺序继续、仅当前课程、只做本门测验;提供状态和运行记录 | **学习100%、测验75%、平台显示已合格 → 继续下一课程。学习75%、测验已合格 → 继续视频。** 整体完成比例按课程门数计算,学习进度另行显示。时间预测按2倍速计算,另预留每门未合格测验2分钟、每门未完成课程切换15秒;重考、网络和人工处理会使实际时间延后。暂停时保留条件估算,完成时刻显示等待恢复。 ## 自动检查范围 **统计范围与自动运行范围要分清:** - 整体面板统计本页已收到的课程列表数据;仅当前课程模式统计当前课程。尚未读取列表时明确显示“暂统计当前课程”。 - 自动运行按当前列表已加载、已显示的课程卡片顺序选择未完成项目。不会自动展开全部分组、翻页或扫描账号所有课程。 - 列表数据中有但页面未显示的课程可能计入统计,却尚未进入自动运行范围。开始前请展开目标分组、清除不需要的筛选、确认目标课程已显示。 - 刷新后列表数据和时长样本需重新读取;可先打开“我的课程”再运行。统计和预测不是平台学分保证。 ## 使用与更新 默认勾选“自动测验,按平台合格线通过”“切标签页继续播放”和“播放受限时尝试静音”。需要有声播放时可关闭静音尝试;浏览器拒绝自动播放时手动点击网页播放按钮。静音成功后面板标注“静音”,可在播放器恢复声音。 需要全程无声音时,勾选新增的 **“全过程静音”**(默认关闭)。该开关独立于自动运行,在开始前、播放中、等待和后台均保持课程播放器静音;人工取消只停止自动运行,不关闭静音偏好。关闭静音开关后恢复播放器开启前的静音状态;原本已静音的播放器仍保持静音。普通与无痕环境分别保存偏好。 面板右上角点击 **“收起”**,会变成显示运行状态的小条,自动任务继续;点击小条 **“展开”** 恢复控制面板。按住面板标题或收纳条拖动即可移动。位置和收纳状态在同一站点存储环境中保存,刷新后恢复;窗口缩小时自动限制在可见范围内。需要人工取消时先展开面板。 “已启动 · 等待恢复”仍是启用状态;普通等待会定期检查或随页面变化接续。不支持的题型、登录失效、自动播放仍受限等情况需人工处理。手动暂停视频后会等待手动恢复播放;更换范围前先“人工取消”。 自动运行时会检查卡住情况:前台视频60秒不推进、75秒无保存确认、平台保存位置与学习进度120秒均不推进,或视频结束25秒仍未确认完成,会触发刷新恢复;加载90秒或启动20秒卡住也会恢复。后台相关等待窗口延长至至少180秒,回前台后给保存20秒恢复时间。平台百分比取整不变但保存位置前进时,不按停滞处理。所有原因共享每段视频每次运行一次的刷新额度,刷新后保留额度和启用状态;仍失败则等待人工处理。手动暂停、答题等待、权限和登录问题不会被这些进度检测强行刷新。 **仓库推送不会自动更新浏览器已安装脚本。** 更新时重新导入最新文件,或在原脚本中替换全部代码;然后分别刷新实际使用的普通/无痕课程标签页并检查面板版本。只启用一份助手,停用旧的“学员中心 · 本地网络诊断”等测试脚本。 ## 后台运行与边界 保持电脑唤醒、联网,浏览器及课程页保持打开。Chrome若经常回收该页,可在“设置 → 性能 → 始终保持活跃的网站”添加 `icampus.yunyinsh.com`。设置依据:[Chrome 性能帮助](https://support.google.com/chrome/answer/12929150?hl=en)。 休眠、断网、标签页冻结/丢弃和自动播放限制仍可能中断;后台答题与切换也可能变慢。图片、材料、填空、问答及无法唯一识别选项的题需要人工处理。脚本不自行限制重考次数,但会尊重平台返回的次数限制、入口和反馈情况。 本脚本无外部依赖,不额外上传日志或账户信息;学习记录仍由网站正常发送。答案记忆等保存在该站点的浏览器存储,启动状态存于当前标签页会话。普通和无痕数据隔离,运行锁也不跨这两种环境;同账号只运行一个学习页面。 ## 验证与开发 目前 **116项本地行为测试**,覆盖播放、测验、恢复、后台、完成判断、统计、自动播放恢复、全过程静音、面板操作及进度停滞恢复。新增15项回归覆盖保存确认丢失、平台计数不推进、正常取整、后台宽限、刷新接续和共享刷新额度。面板在1.4.2时另通过本地Chrome模拟页面验证(1280×900、360×640)。新停滞检测尚未在真实课程页验证;也尚未完成全部课程及长期后台的真实端到端验证。 开发验证需要 Node.js 18+,无需安装第三方依赖: ```sh git clone ssh://git@192.168.10.31:2222/qishizhe/icampus-learning-assistant.git e-learning-assistant cd e-learning-assistant npm test ``` 该SSH地址用于Git,需要相应内网连接和仓库权限,不是浏览器下载地址。 | 文件 | 用途 | | --- | --- | | [icampus-study-helper.user.js](icampus-study-helper.user.js) | 唯一需要安装的用户脚本 | | [2倍速脚本使用说明.md](2倍速脚本使用说明.md) | 设置、导入、复制、后台、预测说明和排错 | | [CHANGELOG.md](CHANGELOG.md) | 各版本变化 | | `*.test.cjs` | 本地行为测试 | | [package.json](package.json) | 测试入口与版本信息 | 反馈时附脚本版本、普通/无痕模式、面板提示和必要运行记录;不要提交登录凭据、完整敏感抓包或带签名的视频链接。