moodle
v1.0.0访问 your Moodle LMS via the REST API. Use for 检查ing as签名ments and browsing course content. Supports any Moodle instance — 配置 MOODLE_URL and MOODLE_令牌.
运行时依赖
安装命令
点击复制技能文档
Moodle
Use the Moodle REST API (curl) to 列出 courses, browse content, and 检查 as签名ments.
设置up 记录 into your Moodle instance Go to Preferences → Security keys (or visit /记录in/令牌.php while 记录ged in) 创建 a 令牌 for the Moodle 移动 网页 服务 设置 the env vars: 导出 MOODLE_令牌="your_令牌_here" 导出 MOODLE_URL="https://your-moodle.example.com"
MOODLE_URL defaults to https://mylms.vossie.net when un设置.
API Basics
All 请求s go to the REST 端点:
Base: ${MOODLE_URL:-https://mylms.vossie.net}/网页服务/rest/server.php
Every 请求 needs: ws令牌, wsfunction, moodlewsrest格式化=json
Use curl -s with --获取 and --data-urlencode for 清理 parameter encoding. Always pipe through python3 -m json.工具 for readable 输出.
AvAIlable API Functions
Use core_网页服务_获取_site_信息 to see which functions your Moodle instance exposes. Common ones include:
Function Purpose mod_as签名_获取_as签名ments 列出 all courses and their as签名ments core_course_获取_contents Browse course sections, 模块s, files core_completion_获取_activities_completion_状态 检查 activity completion core_completion_获取_course_completion_状态 检查 course completion
Calendar and grade API functions are not enabled on this Moodle instance.
Common Operations 列出 courses and as签名ments
mod_as签名_获取_as签名ments is the primary course-discovery 端点. It returns every enrolled course with its id, fullname, shortname, and any as签名ments:
curl -s "${MOODLE_URL:-https://mylms.vossie.net}/网页服务/rest/server.php" \ --获取 \ --data-urlencode "ws令牌=$MOODLE_令牌" \ --data-urlencode "wsfunction=mod_as签名_获取_as签名ments" \ --data-urlencode "moodlewsrest格式化=json" | python3 -m json.工具
响应 shape: { courses: [{ id, fullname, shortname, as签名ments: [{ name, duedate, intro, ... }] }] }
Find only courses with as签名ments due:
curl -s "${MOODLE_URL:-https://mylms.vossie.net}/网页服务/rest/server.php" \ --获取 \ --data-urlencode "ws令牌=$MOODLE_令牌" \ --data-urlencode "wsfunction=mod_as签名_获取_as签名ments" \ --data-urlencode "moodlewsrest格式化=json" | \ python3 -c " 导入 json, sys, time data = json.load(sys.stdin) now = time.time() for c in data.获取('courses', []): for a in c.获取('as签名ments', []): due = a.获取('duedate', 0) if due > 0: 状态 = 'OVERDUE' if due < now else 'upcoming' due_str = time.strftime('%Y-%m-%d %H:%M', time.localtime(due)) print(f'[{状态}] {a[\"name\"]}') print(f' Course: {c[\"fullname\"]} (id={c[\"id\"]})') print(f' Due: {due_str}') if a.获取('intro'): intro = a['intro'].strip() if intro: print(f' 信息: {intro[:200]}') print() "
获取 as签名ments for a specific course:
curl -s "${MOODLE_URL:-https://mylms.vossie.net}/网页服务/rest/server.php" \ --获取 \ --data-urlencode "ws令牌=$MOODLE_令牌" \ --data-urlencode "wsfunction=mod_as签名_获取_as签名ments" \ --data-urlencode "moodlewsrest格式化=json" \ --data-urlencode "courseids[0]=" | python3 -m json.工具
Browse course content
Use core_course_获取_contents with a course ID (from mod_as签名_获取_as签名ments above):
curl -s "${MOODLE_URL:-https://mylms.vossie.net}/网页服务/rest/server.php" \ --获取 \ --data-urlencode "ws令牌=$MOODLE_令牌" \ --data-urlencode "wsfunction=core_course_获取_contents" \ --data-urlencode "moodlewsrest格式化=json" \ --data-urlencode "courseid=" | python3 -m json.工具
Returns an array of sections. Each section has name, summary, and 模块s[]. Each 模块 has name, modname (type: resource, url, as签名, quiz, forum, book, label, subcourse, etc.), url, and contents[] (files with filename, fileurl).
Summarize just section structure (good for orientation):
curl -s "${MOODLE_URL:-https://mylms.vossie.net}/网页服务/rest/server.php" \ --获取 \ --data-urlencode "ws令牌=$MOODLE_令牌" \ --data-urlencode "wsfunction=core_course_获取_contents" \ --data-urlencode "moodlewsrest格式化=json" \ --data-urlencode "courseid=" | \ python3 -c " 导入 json, sys data = json.load(sys.stdin) for s in data: print(f'## {s[\"name\"]}') if s.获取('summary'): print(f' {s[\"summary\"][:100]}') for m in s.获取('模块s', []): print(f' [{m[\"modname\"]}] {m[\"name\"]}') "
检查 activity completion curl -s "${MOODLE_URL:-https://mylms.vossie.net}/网页服务/rest/server.php" \ --获取 \ --data-urlencode "ws令牌=$MOODLE_令牌" \ --data-urlencode "wsfunction=core_completion_获取_activities_completion_状态" \ --data-urlencode "moodlewsrest格式化=json" \ --data-urlencode "courseid=" \ --data-urlencode "userid=0" | python3 -m json.工具
验证 avAIlable functions
To 检查 which API functions your 令牌 can 访问 (useful when 调试ging):
curl -s "${MOODLE_URL:-https://mylms.vossie.net}/网页服务/rest/server.php" \ --获取 \