ZJU Live Better | 浙大生活脚本集合
《ZJU Live Better》是一个面向浙江大学学生的开源脚本集合,通过Node.js实现教学与行政平台的自动化辅助功能。用户可完成自动签到、课程资料下载、Quiz答案获取等任务,有效提升校园生活效率。文章详细介绍了环境配置、脚本运行方法和常见问题解决方案,强调账户安全与合规使用,帮助学生快速上手并自主优化日常操作流程。
目录
ZJU Live Better | 浙大生活脚本集合
面向首次接触本仓库的同学,帮助你一步步完成环境配置、脚本运行与常见问题排查。
1. 了解项目能做什么
本仓库提供多个 Node.js 脚本,围绕浙大常用教学与行政平台实现自动化辅助功能,包括:
- 自动签到(学在浙大雷达点名 / 数字点名)
- 批量下载课程资料、维护本地镜像
- 获取课堂 Quiz 答案、导出待办任务
- 备份 WebPlus 公告正文与附件等
阅读 README.md 可快速了解每个脚本的具体能力。
2. 前置准备
2.1 安装 Node.js
- 访问 https://nodejs.org/ 下载 LTS(长期支持版),建议 18+。
- 安装完成后在终端执行:
看到版本号即表示安装成功。node -v npm -v
2.2 克隆仓库
cd /你想放置仓库的文件夹
git clone https://github.com/5dbwat4/ZJU-live-better.git
cd ZJU-live-better
2.3 创建 .env
在仓库根目录新建 .env 文件,写入:
ZJU_USERNAME=你的学号
ZJU_PASSWORD=你的统一认证密码
DINGTALK_WEBHOOK=可选,钉钉机器人地址
DINGTALK_SECRET=可选,钉钉机器人签名密钥
MEDIA_PLAYER_CMD=可选,自定义播放器启动命令
MEDIA_PLAYER_ARGS=可选,自定义播放器命令行参数(以空格分隔)
.env包含敏感信息,请勿上传或分享。
2.4 安装依赖
npm install
# 或者使用 pnpm:
pnpm install
3. 运行脚本的通用方法
- 打开终端并切换到仓库根目录。
- 使用
node命令运行脚本:node 相对路径/脚本名.js [可选参数] - 遵循脚本在终端中的交互提示完成操作。
示例:
node courses.zju/autosign.js
node classroom.zju/getVideoURL.js
node webplus.zju/saveDoc.js -u https://example.com/detail -o ./output
4. 常用脚本快速上手
| 场景 | 脚本路径 | 关键说明 |
|---|---|---|
| 自动签到 (雷达/数字) | courses.zju/autosign.js | 可选钉钉推送;如需修改默认雷达地点,编辑脚本中的 CONFIG.raderAt |
| 下载课程资料 | courses.zju/materialDown.js | 依次选择学期、课程,自动批量下载资料到当前目录 |
| 维护资料缓存 | courses.zju/materialMaintainer.js | 运行时需提供 .cache.json,参见脚本顶部注释 |
| 获取 Quiz 答案 | courses.zju/quizanswer.js | 按提示选择课程与活动,可生成 HTML 方便查看 |
| 查看待办任务 | courses.zju/todolist.js | 直接输出剩余任务、截止时间及跳转链接 |
| 获取课堂视频链接 | classroom.zju/getVideoURL.js | 通过 MEDIA_PLAYER_CMD/MEDIA_PLAYER_ARGS 配置喜爱的播放器命令;可选择是否发送至播放器 |
| 备份 WebPlus 公告 | webplus.zju/saveDoc.js | 支持命令行参数 -u 指定公告链接、-o 指定输出目录;默认保存到用户文档目录下的 WebPlusArchive |
5. 常见疑问
Q1:node 提示命令不存在?
请确认 Node.js 已正确安装,并重新打开终端后执行 node -v 检查。
Q2:登录失败或提示凭据错误?
- 核对
.env中账号/密码是否正确。 - 若启用了多因子验证或密码过期,请先在统一认证平台处理。
Q3:脚本一直卡住?
- 检查网络是否可访问浙大相关平台。
- 若脚本依赖外部程序(如播放器),确认
MEDIA_PLAYER_CMD等参数配置正确。
Q4:如何停止正在运行的脚本?
在终端按 Ctrl + C 即可中断当前 Node.js 进程。
6. 安全与合规提示
- 请谨慎保管账户信息与下载的资料,不要公开传播。
- 自动化操作可能受平台策略影响,请自觉遵守学校及课程要求。
- 若脚本失效或接口变动,欢迎提 Issue 或自行提交 PR 修复。
祝你使用顺利,如有新需求或改进建议,欢迎参与贡献!