openclaw-sjtu
上海交通大学全能AI助手提供DDL追踪、课程管理、邮箱处理等19项校园服务,简化师生校园生活。
git clone https://github.com/xhh678876/openclaw-sjtu.gitBefore / After 效果对比
1 组过去需要手动登录Canvas、邮箱、教务系统、食堂App等多个平台,查询DDL、邮件、菜单、校历等信息,耗时且易遗漏重要通知。
借助AI助手,通过自然语言一键查询所有DDL、未读邮件、食堂推荐、图书馆空位、校历等,信息集中,高效便捷,不再错过任何重要事项。
description SKILL.md
上海交通大学全能校园助手
配置
- 配置文件:
config.json(从config.example.json复制并填入凭证) - Canvas URL:
https://oc.sjtu.edu.cn - 当前用户的课程列表通过 Canvas API 自动获取
- 所有脚本位于
scripts/目录,用python3执行 - PPT 模板位于
templates/
🔴 刚需功能(每周都用)
1. DDL 追踪
触发: "我有什么作业"、"DDL"、"截止"、"未交作业"
python3 scripts/canvas_api.py ddls # 未交作业 + 倒计时
python3 scripts/canvas_api.py ddls-all # 学期全景报告
2. DDL → Apple 日历
触发: "同步日历"、"导出DDL"、"导入日历"
python3 scripts/sjtu_timetable_ics.py ddls ~/Desktop/ddls.ics
python3 scripts/calendar_sync.py # macOS 直接同步
3. 教学周 / 校历
触发: "今天第几周"、"教学周"、"校历"、"什么时候放假"
python3 scripts/sjtu_info.py week # 当前第几周
python3 scripts/sjtu_info.py calendar # 完整学期校历
4. 教务通知
触发: "教务通知"、"教务处"、"选课通知"、"考试安排"
python3 scripts/sjtu_news.py jwc 10
🟠 高频功能(每月多次)
5. 课程评价
触发: "课程评价"、"老师怎么样"、"选课参考"、"评分"
⚠️ course.sjtu.plus 有 CDN 反爬机制,推荐通过 OpenClaw 浏览器代理模式使用(AI 自动处理认证)。
python3 scripts/sjtu_course_review.py search 传热学
python3 scripts/sjtu_course_review.py compare 燃烧学
python3 scripts/sjtu_course_review.py detail <course_id>
6. 交大邮箱
触发: "邮箱"、"邮件"、"未读"、"发邮件"
python3 scripts/sjtu_mail.py unread --limit 10
python3 scripts/sjtu_mail.py search -k "作业"
python3 scripts/sjtu_mail.py summary
python3 scripts/sjtu_mail.py send --to someone@sjtu.edu.cn --subject "标题" --body "正文"
凭证从 config.json 自动读取。
7. 食堂推荐
触发: "吃什么"、"食堂"、"推荐"、"菜单"
python3 scripts/sjtu_canteen.py recommend
python3 scripts/sjtu_canteen.py list
python3 scripts/sjtu_canteen.py menu 二餐
8. 传承交大
触发: "往年试卷"、"课程资源"、"传承"、"笔记"
python3 scripts/sjtu_legacy.py search "传热学"
python3 scripts/sjtu_legacy.py popular
9. 交大新闻
触发: "交大新闻"、"学校新闻"
python3 scripts/sjtu_news.py news 10
python3 scripts/sjtu_news.py all
🟡 实用功能(需要时用)
10. 图书馆
触发: "图书馆"、"开馆时间"、"座位"
python3 scripts/sjtu_library.py info
python3 scripts/sjtu_library.py seats
11. 空教室
触发: "空教室"、"哪里有教室"、"自习"
python3 scripts/sjtu_classroom.py empty
python3 scripts/sjtu_classroom.py empty --building 东上院
12. 交大 PPT
触发: "做PPT"、"PPT模板"、"生成PPT"
python3 scripts/generate_ppt.py --list-templates
python3 scripts/generate_ppt.py \
--title "标题" \
--markdown content.md \
--template "0.上海交通大学通用PPT模板.pptx" \
--output output.pptx
模板目录: templates/
13. 正版软件
触发: "正版软件"、"MATLAB"、"Office"
python3 scripts/sjtu_software.py list
python3 scripts/sjtu_software.py search "MATLAB"
14. 校园巴士
触发: "校车"、"巴士"、"闵行到徐汇"
python3 scripts/sjtu_info.py bus
15. 生存手册
触发: "生存手册"、"保研"、"转专业"、"GPA"
python3 scripts/sjtu_survive.py toc
python3 scripts/sjtu_survive.py search "保研"
python3 scripts/sjtu_survive.py read "GPA"
🟢 工具功能
16. 镜像换源
触发: "换源"、"pip源"、"镜像"
python3 scripts/sjtu_mirror.py pip
python3 scripts/sjtu_mirror.py conda
python3 scripts/sjtu_mirror.py brew
python3 scripts/sjtu_mirror.py docker
python3 scripts/sjtu_mirror.py npm
python3 scripts/sjtu_mirror.py list
17. 在线工具
触发: "LaTeX"、"在线工具"、"OCR"
python3 scripts/sjtu_tools.py list
18. 视觉交大
触发: "校园照片"、"校园风景"
python3 scripts/sjtu_visual.py albums
python3 scripts/sjtu_visual.py search "图书馆"
📚 Canvas 高级功能
课件下载 + AI 总结
python3 scripts/canvas_api.py courses
python3 scripts/canvas_api.py files <course_id>
python3 scripts/canvas_api.py download <course_id> <filename>
下载后用 scripts/file_extractor.py 提取文本内容。
成绩查询
python3 scripts/canvas_api.py grades
提交作业
⚠️ 提交前必须向用户确认课程、作业和文件
from scripts.canvas_api import submit_assignment
submit_assignment(course_id, assignment_id, [file_paths])
全自动作业流水线
python3 scripts/auto_homework.py scan
python3 scripts/auto_homework.py urgent 24
python3 scripts/auto_homework.py context <course_id> <assignment_id>
手写 PDF 生成
python3 scripts/handwrite_pdf.py input.txt output.pdf --style casual
# 风格: neat(工整) casual(随意) messy(潦草)
字体目录: fonts/(12 款手写字体)
💧 水源社区
触发: "水源"、"水源社区"、"论坛"、"帖子"、"搜帖子"
只读模式:仅支持搜索和浏览,不支持发帖/回复等写操作。
# 搜索话题
node scripts/shuiyuan_discourse.mjs search "选课"
# 查看话题详情
node scripts/shuiyuan_discourse.mjs topic <topic_id>
# 按分类浏览
node scripts/shuiyuan_discourse.mjs categories
凭证配置(三选一,按优先级):
- config.json(推荐):填入
shuiyuan_user_api_key和shuiyuan_user_api_client_id - 环境变量:设置
SHUIYUAN_USER_API_KEY和SHUIYUAN_USER_API_CLIENT_ID - 交互授权:
node scripts/shuiyuan_discourse.mjs auth init
# 按提示完成授权后:
node scripts/shuiyuan_discourse.mjs auth finish --payload "<payload>"
授权后凭证存储于 ~/.openclaw/skills-data/shuiyuan-discourse/auth.json。
依赖
pip3 install requests beautifulsoup4 python-pptx pdfplumber handright Pillow reportlab
水源社区功能额外需要 Node.js(v18+)。
注意事项
- 提交作业 前必须向用户确认
- Canvas Token 失效时需在 oc.sjtu.edu.cn → 设置 → 新建访问许可证 重新生成
- 选课社区受 CDN 反爬限制,推荐通过浏览器代理调用
- 食堂、教室等部分数据为硬编码,如有变动需更新脚本
- 校园巴士时刻表以学校最新通知为准
forum用户评价 (0)
发表评价
暂无评价
统计数据
用户评分
为此 Skill 评分