小雅辅助工具
面向小雅平台的浏览器用户脚本。
功能
- 视频断点续播:从上次观看位置继续,可保存为本地文件便于离线复习
- 课件批量下载:个人学习资料离线归档
- 作业查看与归档:题目查看、作答记录导出 Word / PDF / 图片,我的答案与标准答案对照
- 讨论区互动
- 计划调度与全局雷达
- 进行中课程总览:待办、任务完成率、累计学习时长与课程学习数据概览
- 课件一键转 PDF:多选 PPT / Word 课件批量转换为 PDF 下载(纯前端,无需本机软件)
- Markdown 转换:粘贴文本导出 Word(公式转原生可编辑公式),主控台底部固定入口
- 脚本更新检查:一键比对最新版本、查看更新内容
- 一键反馈 Bug
✍️ 手写归档功能已拆分至独立脚本「小雅作业华为笔记导出」(作业题目自动转手写,导出 .hinote / PDF / JPG),请需要的同学单独安装:
使用说明
本脚本仅用于个人学习资料的查看、整理与离线归档。它不替你完成学习,不提交任何作业,不与平台正常服务进行对抗性交互。请遵守所在学校或平台的使用规定,学术诚信由用户自行负责。
安装
- 安装 Tampermonkey 浏览器扩展
- 点击安装最新版脚本
- 打开小雅平台即可使用
脚本已启用 Gitee 自动更新(@updateURL / @downloadURL),并内置「检查更新」面板,有新版会自动提示。
技术栈
纯原生 JavaScript,零外部依赖,基于 Tampermonkey API。
版本
当前版本 3.7.4.5
✂️ v3.7.4.5(2026-10-12 发布):大幅瘦身 + Markdown 转 Word 排版规范化。 主脚本 3.1MB → 732KB(手写归档笔记版拆分至独立脚本「小雅作业华为笔记导出」);正文宋体+Times 小四、首行缩进 2 字符、标题黑体;转换面板迁至主控台底部固定区域;大图自动按页宽缩放。
↔️ v3.7.4.4(2026-10-10 发布):左对齐加固。 左对齐写进每个段落属性,WPS/Word 中文默认模板不再盖成两端对齐;引擎 0.1.8-xy.5,加载地址带版本参数防缓存。
🗑️ v3.7.4.3(2026-10-10 发布):精简优化。 移除 Markdown「🖨 导出 PDF(打印)」功能,转换面板仅保留「📄 导出 Word」;Markdown 转 Word、课件「🖥 预览转 PDF」、批量下载不受影响。
📝 v3.7.4.2(2026-10-10 发布):Markdown 转 Word 专项修复。 代码零污染、裸 $ 货币误判防护、1.5 倍行距、引擎失败自动重试(引擎 0.1.8-xy.3)。
🎉 v3.7.4.1(2026-10-09 发布):功能性大版本更新。
- 🖥 课件一键转 PDF:下载区多选 PPT / Word 课件一键批量转 PDF 下载(不勾选时转换当前预览);复用平台预览服务在服务端转换,纯前端方案,无需安装任何本机软件。
- 📝 Markdown 转 Word / PDF:下载区与作业答题区双入口;Word 公式转原生可编辑公式,PDF 矢量打印。
- 🛠 公式修复:
$\(x\)$ 双重定界、\boldsymbol 导致的公式红字报错/内容丢失已修复,Word/PDF 双路径全链路正常。
- 🔧 修复部分环境(脚本猫沙箱)下转换引擎「未挂载」的问题;移除实验性本机转换服务依赖,「转 PDF 打包」并入「🖥 转 PDF」。
更新记录
3.7.4.5 (2026-10-12)
- ✂️ 「作业手写归档」笔记版手写导出拆分至独立脚本「小雅作业华为笔记导出」(Greasyfork 599858),主脚本 3.1MB → 732KB
- 📐 Markdown 转 Word 排版规范化:正文宋体+Times 小四、首行缩进 2 字符、段前段后 0;标题黑体加粗;代码 Consolas(引擎 0.1.8-xy.7)
- 🖥 Markdown 转换面板迁移至主控台底部固定区域(全标签页常驻)
- 🖼 Markdown 转 Word 超大图片自动按页宽等比缩放(对齐上游 #162)
- 🛠 修复普通导出 PDF / 图片失败(xyExpCanvasToJPEG 缺失)
3.7.4.4 (2026-10-10)
- ↔️ 左对齐加固:每个段落显式
w:jc=left(3.7.4.3 仅写 docDefaults,被 WPS/Word 中文默认模板盖成两端对齐);引擎 0.1.8-xy.5
- 🚀 引擎加载地址带版本参数
?v=,规避 Gitee raw CDN 缓存,更新即生效
- ✅ 回归:15 组公式正常、无红字兜底、全文无 justify
3.7.4.3 (2026-10-10)
- 🗑️ 移除 Markdown「🖨 导出 PDF(打印)」功能:转换面板精简为仅保留「📄 导出 Word」,双入口与草稿共享不变
- ↔️ 导出 Word 全文显式左对齐(docDefaults
w:jc=left),不再依赖 Word 默认观感(引擎 0.1.8-xy.4)
- 🧹 同步清理 marked / KaTeX 外链依赖与打印窗口代码;Markdown 转 Word、课件「🖥 预览转 PDF」、批量下载不受影响
3.7.4.2 (2026-10-10)
- 📝 MD→Word 专项:代码块/行内代码按 CommonMark 豁免公式预处理(修复 $$、( 被污染);裸 $ pandoc 规则防护 + 未配对 $ 转义;正文 1.5 倍行距 + 段后 6pt、代码块单倍
- 🔧 引擎加载自动重试 2 次;md2docx 失败自动重试一次(引擎 0.1.8-xy.3)
3.7.4.1 (2026-10-09)
- 🖥 新增「课件一键转 PDF」:下载区多选 PPT / Word 课件批量转 PDF 下载(不勾选时转当前预览);复用平台预览服务端转换(furl 签发 + 隐藏预览会话 + 内部打印链自动取回 PDF 直链),纯前端零依赖,单文件失败自动跳过
- 📝 新增「Markdown 转换」:导出 Word(LaTeX 公式转原生可编辑公式、图片嵌入)或 PDF(矢量打印),下载区 + 答题区双入口,草稿自动保存;引擎按需懒加载
- 🛠 公式兼容性修复:剥离
$…$ 内层 \( \) \[ \] 定界符(AI 生成的 MD 常重复包裹,KaTeX math 模式不识别导致整段红字);\boldsymbol{…} 映射为 \mathbf{…}(原产出非法 XML 致 Word 内容丢失)
- 🔧 修复脚本猫沙箱下转换引擎「未挂载」的问题(UMD 执行域全局与 window 代理不一致,改为多目标扫描检测)
- 🧹 移除实验性本机 Office 转换服务依赖;「转 PDF 打包」并入「🖥 转 PDF」,打包下载中 Office 文件保持原格式
3.7.3.9 (2026-09-22 20:15)
- 🚨 承 3.7.3.7:计划调度严重缺陷已修复(首跳地址补齐路径段、队列存活判定修正、路由前缀不再误回退),本版保留
- 🛠️ 承 3.7.3.8:视频状态栏「已看」改用视频自己的计时器,不再恒为 0;视频侧不再显示文档式分钟要求,改为「播放进度 + 播放位置/片长」
- 📄 文档侧:分母仅在平台确有时长要求时显示并标注「(要求)」,不再把脚本默认线换算成「/2 分」
- 🙏 两处问题均源于发布前回归验证不足,向受影响的同学诚恳致歉
3.7.3.8 (2026-09-22) — ⚠️ 有显示缺陷,请勿使用,直接升级 3.7.3.9
- 🚨 修复「计划调度」严重缺陷:首跳地址补齐路径段并与主循环地址模板统一,不再落到课程概览页
- 🛠️ 修复落地页把正在运行的队列误判为残留而清空的问题(补跨页跳转标记 + 启动即写存活心跳)
- 🧭 路由前缀增加记忆能力,离开课程上下文后不再默认回退旧版路径;四处前缀判定收编为同一函数
- ⚠️ 遗留缺陷:视频状态栏「已看 N 分」读错计时器恒为 0;视频页错误显示文档式分钟要求
3.7.3.7 (2026-09-18) — ⚠️ 存在严重缺陷,请勿使用,直接升级 3.7.3.8
- 🎯 下载区全选范围限定为当前筛选(文件类型 + 文件名搜索)可见的文件,切换筛选后再次全选范围随之更新
- 🔗 全选、单个勾选与下载队列状态保持同步,不再误选被过滤的文件
3.7.3.6 (2026-09-16)
- 🛠️ 网络请求统一超时保护:弱网或服务端无响应时界面不再卡住,长时间挂机更稳
- ⏱️ 修复教师设置观看时长后仍按默认时长执行的问题,交卷线正确对齐
- 🛡️ 看门狗与跳转重试修复:防死锁恢复生效;重试计数跨页累计,不再无限重跳
- 🔒 输出转义加固,规避注入风险
3.7.3.5 (2026-09-14)
- 🛠️ 修复有些连播不显示当前任务:连播在新标签页/复制链接打开时会被误判为新会话并清空队列,现改为心跳时间戳判定,跨标签页不再断连播
- 📅 跳转中状态补齐序号显示;跳转失败时 15 秒自动复位,不再卡在「正在跳转」
- 🔀 三个连播入口(一键连播 / 雷达连播 / 智能排课)共用同一套基础筛选与去重逻辑,去重口径一致,各入口原有能力保持不变
- 🛠️ 修复待办任务重复入队:重复或无效条目不再被排进队列
- 💓 心跳请求加固:加入超时保护与重试抖动,长时间挂机更稳
3.7.3.4 (2026-09-10)
- 📄 脚本头部新增开源协议与第三方声明注释块(GPL-3.0 · 四个引用项目的致谢与归属 · 仓库许可证文件链接),元数据新增
@source;功能代码零改动
3.7.3.3 (2026-09-08)
- 🎯 任务名可点击跳转:任务明细与今日提示的条目直接进入对应任务页,缺失的章节信息自动从课程资源树反查补齐
- ⏱️ 时长任务修复:文档提交线动态对齐教师设置的最低观看时长(
watch_min_minutes),不再因固定提交线被服务端拒绝后提前跳走
- 📅 计划调度:入队时长自动按任务要求规划;悬浮卡精简为序号 / 任务名 / 已驻留时间
- ✨ 交互细节:任务行悬停指示条、「进入 →」箭头微动效、键盘焦点描边
3.7.3.2 (2026-08-31)
- 📄 统一导出面板:「导出作答文档」与「手写归档」合并,普通导出 / 笔记版手写导出自由切换
- ✅ 内容自由组合:题目、标准答案、我的作答三项可勾选,导出前实时预览
- 🖼️ 图片全保留:题目图、选项图、手写上传图在 Word / PDF / 图片 / 笔记版里完整嵌入
- 🧩 组合题识别:1.1、1.2 大题套小题按子题导出,每道子题旁带题图
- 🛠️ 修复:长文本溢出页边、行与行重叠
3.7.3.1 (2026-08-29)
- 🧹 内部清理:移除 15 个废弃函数(反馈旧问卷、Google 表单配置、鼠标模拟/深度伪装手动开关、看门狗停止器等),脚本更轻更稳
- ✅ 功能零变化:全部引擎照常运行
3.7.3.0 (2026-08-28)
- ✨ 新增「作业手写归档」:作业题目与作答一键生成手写版,导出 .hinote / PDF / JPG,手写作业免手抄
- 🛡️ 修复「文件预览确认」弹窗卡住问题,挂机流程不再被拦截
- 📝 修复访问非本人课程时误显示学情概览的问题
- 📝 作业区数据全面修复:适配平台新版接口,浏览页与答题页的题目、作答记录、批改状态均可正常识别
- 🧹 面板精简:移除冗余开关,仅保留「强制静音」,各引擎默认开启
- ⚡ 作业自动拉取增加 10 秒冷却,避免请求过于频繁
3.7.2.6 (2026-08-27)
3.7.2.5 (2026-08-25)
- 🖱️ 滚轮滚动接力优化:面板任意位置可滚,不再需要贴着滚动条
- ✨ 系统控制区压缩为单行工具条,节省面板空间
- 📜 面板缩小后内容可上下滚动(全分区统一)
- 🛠️ 修复收起后残留空白大框
- 🛠️ 修复学情概览在小面板下被压扁
- 🎬 视频直链下载:VOD 视频换流出公网 mp4 直接保存
- 📐 主控台浮窗自由缩放:八向拖拽 + 双击 grip 复位
- 🛠️ 修复收起残留空白、概览压扁、缩小后无法滚动
- ✨ 系统控制条瘦身单行化;🖱️ 滚轮任意位置可滚自动接力
3.7.2.4 (2026-08-24)
- 🎬 视频直链下载:VOD 视频换流出公网 mp4 直接保存
- 📐 主控台浮窗自由缩放:八向拖拽 + 双击 grip 复位
3.7.2.3 (2026-08-22)
- 课程内
/task、/home、/courseTools 及裸 /mycourse/{id} 统一进入学情概览,不再有独立任务页/工作台
- 学情概览进入即用缓存渲染,秒开且不再闪回原区;原「待命区」更名为「🛰️ 小雅引擎」
- 区域切换日志全部静默,移除任务页 zone 及配套代码,与学情概览零冲突
3.7.2.2 (2026-08-22)
- 修复旧页面扫描与课程学习数据概览并发时反复切换「进行中课程总览 / 课程学习数据概览」的问题
- 固定打开的学情概览由中央分区仲裁保护,自动扫描不会覆盖当前查看内容;右上角显式返回仍可恢复原分区
3.7.2.1 (2026-08-22)
- 新增全局与单课程两层「今日学习提示」:按待办状态、截止时间和完成情况给出可解释的行动顺序,并支持直达原任务
- 课程总览与课程学情支持稳定往返;任务明细展开状态会保留,异步扫描不会覆盖用户正在查看的概览
- 加固同课程作业切换的陈旧响应、下载鉴权与文件名安全、SPA 文档监听器生命周期
3.7.2 (2026-08-21)
- 课程学习数据概览改为主控台正式区域,任务与作业明细支持展开查看和直达原任务
- 修复概览路由重复切换、日志刷屏和滚动冲突,优化学习时长与任务完成度的视觉层级
- 修复情报站超长链接横向溢出,公告链接会在控制台内自动换行
3.7.1 (2026-08-21)
- 进行中课程依次展示有可做待办、无可做但有已截止任务、其余课程;每组按截止时间从早到晚、总任务数从多到少排序
3.7.0 (2026-08-21)
- 新增「我的课程」进行中课程总览,汇总当前可做待办、任务完成率和累计学习时长,并支持课程搜索与待办筛选
- 新增课程学习数据概览:展示学习时长、任务完成度、作业成绩与详情跳转
- 作业状态清晰区分待提交、已截止、待批阅、已批阅;
0/0 显示暂无任务,不再显示满进度条
- 脚本检查更新与 Tampermonkey 自动更新统一切换至 Gitee 发布源
3.6.4 (2026-08-17)
- 修复下载按钮事件委托与资源 ID 映射,点击后正确进入获取链接和下载流程
- 兼容数组/对象两种课程资源返回结构,补齐 quote_id 与嵌套资源识别
- 按参考脚本恢复下载链路:携带站点 Authorization 并采用流式读取
- 修复批量下载等待流读取完成时长期停留在
0/1 (0%) 的问题,显示当前文件流式进度并确保成功/失败都能结束计数
- 文件服务器缺少
Content-Length 时显示当前文件名和已接收字节数,并支持从 Content-Range 推断总大小
- 下载进度改为紧凑卡片布局,长文件名自动省略,进度信息和操作按钮不再互相挤压
- 单个下载按钮与批量下载共用进度卡片,显示
0/1、文件百分比、已接收大小和完成状态
- 修复下载区课程切换时旧请求覆盖当前课程资源的问题
- 修复下载失败被误判为空资源、无法自动重试的问题
- 统一下载资源 ID,修复批量下载与目录树 ID 不一致
- 增强动态 HTML 转义,降低动态内容注入风险
- 优化 UI 观察器、持久定时器和异步异常处理
3.6.3 (2026-08-11)
- 新增脚本更新模块:面板头部一键「检查更新」,显示当前/最新版本与更新内容
- 面板头部改版为分段操作条(当前区域 / 反馈 / QQ群 / 检查更新)
- 元数据启用 Tampermonkey 原生自动更新
- 开源协议改为 GPL-3.0
3.6.2 (2026-08-02)
- 调度任务库对齐雷达树状(课程→单元→任务)
- 显示全部学生课程
- 默认关闭开机动画,启动更快
3.6.1 (2026-08-02)
- 课程目录区:树状目录浏览,点击跳转资源
- 下载区单元顺序树状呈现 + 类型勾选筛选
- 全局雷达:课程→单元→任务 树状展示
- 自动破除系统弹窗(刷课区/下载区)
3.6.0 (2026-08-02)
- 作业答题台全新 UI(作答/结果双 Tab),支持 AI 作答模板提取与一键提交作答记录
- 提交结果面板:成绩摘要 + 每题状态徽章/我的答案/标准答案
- 下载区排序(单元顺序/文件名/上传时间)+ 彩色扩展名徽章(色弱友好)+ 长文件名横向滚动
3.5.7 (2026-07-22)
- 新增反馈入口:面板新增「反馈」按钮,一键跳转提交 Issue
- 清理未使用的 SurveyJS 等 CDN 依赖,精简脚本
3.5.6 (2026-06-17)
- 作业题目自动解析,支持 course_paper 路径
- 课件下载增强,未加入课程也能下载
- 修复面板双击及 SPA 竞争条件
3.5.5 (2026-06-15)
3.5.4 (2026-06-12)
3.5.3 (2026-05-18)
3.5.2 (2026-05-18)
3.5.1 (2026-05-17)
3.5.0 (2026-05-16)
开源协议与第三方许可
本项目采用 GPL-3.0 协议开源,许可证全文见 LICENSE。
你可以自由使用、修改和再分发本脚本;当对外分发修改后的版本时,整体衍生作品需同样以 GPL-3.0 协议发布,并完整保留版权声明。
本脚本按「原样」提供,不附带任何明示或暗示的担保。
第三方代码
本脚本开发过程中引用了下述开源项目的部分代码,在此向各位作者致谢:
| 项目 |
作者 |
原始许可证 |
| 小雅爬爬爬 |
zygame1314 |
MIT License |
| 小雅做做做 |
zygame1314 |
MIT License |
| 小雅自动刷 |
Qy |
Apache License 2.0 |
| 小雅粘粘粘 |
Qy |
Apache License 2.0 |
上述第三方代码原始许可文件随本仓库一并提供(LICENSE-MIT、LICENSE-APACHE),源码内已完整保留对应的版权与归属声明,项目详情参见 THIRD_PARTY_NOTICES.md。
许可兼容性说明:MIT License、Apache License 2.0 均与 GPL-3.0 协议兼容。当本项目整体对外分发时,包含第三方代码在内的整个衍生作品受 GPL-3.0 约束;若单独提取剥离上述第三方源码单独分发,则仍遵循其原始许可证。
若你是上述项目的作者,认为署名、许可证标注存在错误,欢迎提交 Issue,我会及时更正。
免责声明
本脚本按「原样」提供,不附带任何明示或暗示的担保。使用本脚本产生的一切后果由使用者自行承担,请遵守所在学校、平台以及当地法律法规。