HCY Blog

ZJU Live Better | 浙大生活脚本集合

《ZJU Live Better》是一个面向浙江大学学生的开源脚本集合,通过Node.js实现教学与行政平台的自动化辅助功能。用户可完成自动签到、课程资料下载、Quiz答案获取等任务,有效提升校园生活效率。文章详细介绍了环境配置、脚本运行方法和常见问题解决方案,强调账户安全与合规使用,帮助学生快速上手并自主优化日常操作流程。

ZJU Live Better | 浙大生活脚本集合

Github仓库

面向首次接触本仓库的同学,帮助你一步步完成环境配置、脚本运行与常见问题排查。


1. 了解项目能做什么

本仓库提供多个 Node.js 脚本,围绕浙大常用教学与行政平台实现自动化辅助功能,包括:

  • 自动签到(学在浙大雷达点名 / 数字点名)
  • 批量下载课程资料、维护本地镜像
  • 获取课堂 Quiz 答案、导出待办任务
  • 备份 WebPlus 公告正文与附件等

阅读 README.md 可快速了解每个脚本的具体能力。


2. 前置准备

2.1 安装 Node.js

  1. 访问 https://nodejs.org/ 下载 LTS(长期支持版),建议 18+。
  2. 安装完成后在终端执行:
    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. 运行脚本的通用方法

  1. 打开终端并切换到仓库根目录。
  2. 使用 node 命令运行脚本:
    node 相对路径/脚本名.js [可选参数]
  3. 遵循脚本在终端中的交互提示完成操作。

示例:

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 修复。

祝你使用顺利,如有新需求或改进建议,欢迎参与贡献!