openclaw-sjtu
Shanghai Jiao Tong University's all-in-one AI assistant, built on the OpenClaw framework, offers one-stop campus services for SJTU faculty and students. It encompasses 19 functions such as DDL tracking, course management, email processing, canteen recommendations, library inquiries, academic calendar, campus bus, PPT generation, and SJTU Date matching. This significantly boosts campus life and learning efficiency, making information readily accessible.
git clone https://github.com/xhh678876/openclaw-sjtu.gitBefore / After Comparison
1 组Previously, checking information like deadlines (DDLs), emails, menus, and academic calendars required manually logging into multiple platforms such as Canvas, email, the academic affairs system, and cafeteria apps. This process was time-consuming and often led to missing important notifications.
Now, with an AI assistant, all DDLs, unread emails, cafeteria recommendations, library seat availability, and academic calendars can be queried with a single click using natural language. Information is centralized, making it highly efficient and convenient, ensuring no important matters are missed.
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 反爬限制,推荐通过浏览器代理调用
- 食堂、教室等部分数据为硬编码,如有变动需更新脚本
- 校园巴士时刻表以学校最新通知为准
forumUser Reviews (0)
Write a Review
No reviews yet
Statistics
User Rating
Rate this Skill