Releases: KunyQi/moodle-downloader
Releases · KunyQi/moodle-downloader
Release list
v2.2.0 — AI Agent 学习层 / Agent study layer
🤖 把课件变成 AI Agent 能查询的知识库
v2.2.0 让下载完的课件不再只是硬盘上的一堆 PDF。新增的学习层可以索引本地课件、导出 Obsidian 知识库、生成复习 notebook,并通过 MCP 服务把这些内容开放给 Claude Code 等 AI agent。
全部操作本地文件,不需要登录 Moodle —— 复习流程在认证之前就短路返回了。
python main.py --index # 索引本地课件
python main.py --obsidian vault # 导出 Obsidian 知识库
python main.py --notebook revision.ipynb --days 7 # 生成复习 notebook
python -m moodle_scraper.mcp_server --root . # 给 agent 用的 MCP 服务接入 Claude Code:
claude mcp add moodle -- python -m moodle_scraper.mcp_server --root /path/to/materials✨ 新增 / Added
- MCP 服务(
moodle_scraper/mcp_server.py)—— 手写 JSON-RPC over stdio,零额外依赖。5 个工具:list_courses、search_materials、get_material_text、course_overview、revision_plan - Obsidian 导出(
study/obsidian.py)—— 每门课一个 MOC 索引页,材料按周分目录;每篇笔记带 YAML frontmatter、原文件嵌入、复习要点空白区、正文摘要与 wikilink 互联 - 复习 notebook(
study/notebook.py)—— nbformat 4.5 纯 JSON 生成,含 N 天复习计划与「空白回忆」自测区 - 本地索引(
study/index.py)—— 按文件名启发式识别材料类型与周次,可选提取正文,落盘.moodle-index.json - 复习 Skill(
skills/moodle-revision/)—— 让支持 Skills 的 agent 学会完整复习流程 - 排期唯一事实源(
study/planner.py)—— MCP 与 notebook 共用同一套排序与间隔重复实现
🔧 修复 / Fixed
revision_plan此前只做均分、不含间隔重复复习位(只有 notebook 有),现已补齐 d-1 / d-3 / d-7 复习安排,两条路径结果保证一致- 消除 MCP 与 notebook 中重复的排序 / 分天实现(约 60 行),根除了两者结果漂移的可能
- 多课程 notebook 会重复输出课程标题
- SKILL.md 曾描述过一个实际不存在的能力,已修正
⚠️ 如实说明 / Honest notes
请在使用前了解这些边界:
- 这不是"官方 ChatGPT Work 集成"。本项目提供的是标准接口:MCP 服务、Obsidian vault、
.ipynb、Skill 文件。Claude Code / Claude Desktop 可直接接入;ChatGPT 能否使用取决于它自身的 MCP 连接器支持。除此之外没有任何厂商专有集成。 - PDF 正文提取未经真实环境验证。该功能通过
pypdf/pdfminer懒加载,但开发环境两者都未安装,因此只测试到了「库缺失时降级为空文本」这条路径。真实 PDF 的提取质量尚未验证。想要全文检索请pip install pypdf;不装也能正常运行,只是检索退化为按文件名匹配。 .txt/.md/.csv的正文提取无需任何额外依赖,这部分经过完整验证。- 材料类型与周次是启发式识别,靠文件名匹配关键词(
Week 3、Wk3、Topic 3、lecture、lab等)。命名不规范的课件可能被归为other或识别不出周次——这不影响下载与导出,只影响排序与分组。 - 测试全部离线,287 项通过。网络访问隐藏在 Protocol 接缝之后,测试用假 HTTP 客户端注入预设响应,不触碰真实 Moodle。
📦 依赖 / Dependencies
无新增硬依赖,仍是 requests、beautifulsoup4、selenium、rich。
Full Changelog: v2.1.0...v2.2.0
v2.1.0 — 中英双语界面 / Bilingual UI
🌏 中英双语界面 / Bilingual Interface
v2.1.0 的主角:完整的英文界面上线。所有终端文案(状态消息、表格、面板、进度条、错误提示)都有了中英两套目录,一行命令切换:
python main.py --lang en或在 config.toml 中持久设置:
[ui]
language = "en" # "zh" 或 "en"The headline of v2.1.0: a full English interface. Every terminal string — status messages, tables, panels, progress bars, error dialogs — now ships in both Chinese and English. Switch with --lang en or set it once in config.toml.
✨ 新增 / Added
moodle_scraper/i18n.py:中/英文案目录 +t()取词函数,测试强制两套目录键与占位符完全一致--lang zh|en命令行参数与[ui] language配置项(支持english、zh-CN等别名,无法识别时回退中文并提示)main.py帮助与崩溃画面改为双语静态文本,依赖缺失时也能正常显示- README 重写为双语宣传版,附由真实 UI 渲染生成的终端演示图(
scripts/gen_demo_svg.py可复现)
🔧 修复 / Fixed
- 启动器菜单选项 3/4 的参数错误与
set /p延迟展开问题 - 登录提示笔误 UNWS → UNSW;提示不再写死 Edge(实际支持 Chrome / Edge / Firefox 自动检测)
✅ 质量 / Quality
- 新增
tests/test_i18n.py;全部 72 项测试离线通过 - 中文界面输出与 v2.0.0 逐字一致——只加语言,不改行为
Full Changelog: af2aa8e...v2.1.0