内蒙古智慧教育 - 自动刷课助手
自动完成内蒙古智慧教育平台(wlpx.nmgdata.org.cn)的在线课程视频学习。支持自动播放、2倍速静音、断点续播、多课程连续刷课,全程无需手动操作。
#在线教育
#自动播放
#视频学习
#智慧教育
数据统计
总安装量
21
今日新增
+0
用户评分
-
描述
版本1
评分0
权限说明
内蒙古智慧教育平台在线课程视频自动播放脚本,支持2倍速静音播放和断点续播功能。
内蒙古智慧教育 - 自动刷课助手
基本信息
| 项目 | 内容 |
|---|---|
| 脚本名称 | 内蒙古智慧教育 - 自动刷课助手 |
| 版本 | 2.6.0 |
| 适用平台 | 内蒙古智慧教育平台 |
| 许可证 | MIT |
| 运行时机 | document-end |
功能概述
本脚本用于自动完成内蒙古智慧教育平台(wlpx.nmgdata.org.cn)的在线课程视频学习。启动后全程无需手动操作,自动完成以下流程:
- 自动扫描课程列表,识别未完成课程
- 自动进入课程详情页,获取视频目录
- 自动播放视频(静音 + 2倍速)
- 视频完成后自动切换到下一个视频
- 当前课程全部视频完成后,自动切换到下一门课程
- 所有课程完成后自动停止
主要特性
1. 自动播放控制
- 视频自动静音播放,不打扰用户
- 默认 2 倍速播放,可大幅缩短学习时间
- 多轮重试机制:页面加载后 500ms / 1500ms / 3000ms / 6000ms 尝试播放
- 持续 2 秒间隔检测播放状态,如被暂停则自动恢复
2. 断点续播
- 视频因验证码或意外中断时,自动保存当前播放进度到 sessionStorage
- 刷新页面后自动恢复到上次播放位置继续学习
3. 多课程连续刷课
- 扫描课程列表页,按顺序逐个完成未完成课程
- 自动识别课程进度(支持 Element UI 进度条、文本进度等多种方式)
- 当前页课程全部完成后,自动翻到下一页继续
4. 进度记录与持久化
- 使用 Tampermonkey GM 存储记录已完成视频和课程
- 进度跨页面、跨会话持久化,不会因刷新丢失
- 以本地存储为准,不依赖页面 DOM 状态
5. 视频卡顿检测
- 每 2 秒监控视频播放进度
- 若 15 秒内播放时间未前进,判定为卡住并自动刷新页面
6. 可视化控制面板
- 右上角悬浮面板,显示当前状态、课程进度、视频进度
- 面板可拖动、可最小化
- 提供"开始"、"停止"、"跳过当前视频"、"重置记录"按钮
7. SPA 路由兼容
- 同时监听
hashchange、history.pushState、history.replaceState - 支持 Vue Router 单页应用的页面切换
- 使用 MutationObserver 检测页面内容变化,兜底检测路由切换
8. 多选择器兜底
- 课程卡片扫描:
.course-card→.el-card兜底 - 视频列表扫描:
.course-video-item→.teacher-video-item→[class*="video-item"]→ 以.video-name为锚点向上查找 - 分页按钮:Element UI
.btn-next→ 任意含nextclass 按钮 →.el-pager末项 - 目录标签页:
#tab-video→.el-tabs__item文本匹配 →role="tab"属性匹配
使用方式
安装
- 浏览器安装 Tampermonkey 或 ScriptCat 扩展
- 将脚本导入扩展中
- 打开 内蒙古智慧教育平台
操作步骤
- 登录平台后,进入课程列表页
- 点击右上角悬浮面板的 "▶ 开始自动刷课" 按钮
- 脚本将自动扫描课程、播放视频、切换课程,无需任何手动干预
- 如需中途停止,点击 "⏹ 停止"
- 如需跳过当前视频,点击 "⏭ 跳过当前视频"
- 如需清除所有进度记录重新开始,点击 "🗑 重置记录"
配置说明
脚本内置配置项(CONFIG 对象):
| 配置项 | 默认值 | 说明 |
|---|---|---|
pauseRefreshDelay |
500ms | 检测到视频暂停后刷新延迟 |
videoEndDelay |
2000ms | 视频结束后等待再切换的延迟 |
maxRefreshRetries |
3 | 页面刷新最大重试次数 |
pollInterval |
1000ms | DOM 轮询间隔 |
debug |
true | 是否输出调试日志 |
completionThreshold |
0.95 | 播放时长超过总时长 95% 即算完成 |
页面支持
| 页面类型 | 路由特征 | 脚本行为 |
|---|---|---|
| 课程列表页 | #/、#/index、#/course/index |
扫描课程卡片,依次进入未完成课程 |
| 课程详情页 | #/course/detail |
点击目录标签,获取视频列表,进入视频页 |
| 视频播放页 | #/video、#/play、#/watch |
自动播放视频,完成后返回课程详情 |
所需权限
| 权限 | 用途 |
|---|---|
unsafeWindow |
访问页面 window 对象 |
GM_setValue |
持久化存储已完成课程和视频记录 |
GM_getValue |
读取已完成课程和视频记录 |
GM_deleteValue |
清除存储数据 |
GM_log |
输出调试日志 |
技术实现
- IIFE 模块化:使用立即执行函数封装,避免全局变量污染
- Promise 异步控制:视频元素等待、页面跳转等操作均使用 async/await
- GM 存储持久化:进度数据跨页面保持,
beforeunload事件确保数据完整保存 - 多重防重复机制:
_indexPageHandling、_detailPageHandling、_videoPageHandling标志防止并发执行 _videoCompleted防抖:防止pause和ended事件双重触发完成处理
注意事项
- 本脚本仅用于个人学习辅助,请合理使用
- 脚本运行时建议保持浏览器标签页激活,部分浏览器会限制后台标签页的视频播放
- 如遇到验证码阻断,脚本会自动刷新页面,刷新后验证码通常消失
- 重置记录会清除所有课程完成标记,请谨慎操作