十六进制课程课时获取
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_1ffa0952/hex-course-lessons 技能到 AI 助手中。
技能介绍
解决的问题
在 hexfuture.net 这类教育 SaaS 平台上,课程内容、目录和课时资源分散在远程 MCP Server 中。如果让 Agent 直接操作 HTTP JSON-RPC,会面临几个工程问题:认证流程繁琐、DirectoryId / ClassPeriodId 等长编号难以在对话中稳定传递,且容易破坏用户体验。
这个技能把这些细节封装成可编排的脚本,使自然语言请求(如“列出第二章的课时内容”)能够稳定映射到平台 API。
核心能力与工作流
技能通过 scripts/hex_mcp_proxy.py 作为通信层,与十六进制远程 MCP Server 交互,并拆成两个入口脚本:
- 课程管理:
hex_course_manage.py负责获取用户课程列表、切换当前课程。 - 内容获取:
hex_course_lessons.py和hex_class_period_content.py负责读取章节目录、列出课时并拉取课时内容。
典型调用链是:
- 先列出当前用户的课程,并按名称或序号切换到目标课程。
- 调用
getlastcourse或复用用户提供的courseId,获取当前课程编号。 - 执行
listclassdictionaries,拿到课程主线/章节目录。 - 对指定目录执行
listclassperiods,列出课时并缓存ClassPeriodId。 - 调用
getclassperiodcontent,拉取课时下的课件、作业、测验和电子书。
其中课时内容会按业务类型(教案、学案)和文件格式(Word、PDF、PPT、H5)进行区分,方便后续结构化展示。
会话缓存与反查机制
技能在系统临时目录维护 hex_course_cache_{sessionId}.json,保存目录名称、课时名称与对应 ID 的映射。用户侧只看到可读名称,Agent 在后续调用中通过 --directory-name、--class-period-name 或序号反查 ID。缓存按 sessionId 隔离,超过 24 小时自动清理。
适用边界
- 只读技能:不会修改平台数据。
- 运行环境:需要 Python 3 与
httpx,推荐使用 managed venv。 - 认证依赖浏览器:首次运行会打开本地回调服务,需要在 macOS 或 Windows 上完成浏览器登录;
apiKey会写入~/.hexfuture/apikey.json,过期后触发 401 自动重登。 - 缓存时效:跨会话调用必须携带同一个
--session-id;如果缓存已过期或会话切换,名称反查会失败,需要重新执行目录列表。
使用场景
- 教师在十六进制平台有多门课程,想用对话方式列出全部课程并切换到指定课程,查看其章节目录结构。
- 助教需要查看某门课程第二章下的所有课时,了解每个课时包含哪些课件、作业和测验,便于备课。
- 教研人员想获取特定课时下的电子书和H5课件内容,用于整理课程材料或制作离线教学包。
- 课程审核员需要检查某门课程的章节目录层级和课时资源是否完整,确认没有缺少作业或测验。
适合人员
- 在十六进制平台授课的教师,希望用自然语言查询课程列表、目录和课时内容,无需逐页点击网页。
- 教学助理,需要快速获取课程各章节的课时清单和资源类型,协助教师准备课堂材料。
- 课程内容审核人员,需要检查课程章节结构是否完整、课时资源(课件/作业/测验/电子书)是否齐全。
- 教育平台技术运营或集成工程师,在调试课程相关MCP接口时需要一个可运行的脚本参考实现。