2025-03-06
现在我不那么困惑了,因为我幸运地变得比以前麻木了。——梭罗的《瓦尔登湖》
https://github.com/PeiPei233/zju-learning-assistant
ZJU Learning Assistant: 提高学习效率的理想工具
介绍
在现代的学习环境中,快速获取和管理学习资源是提高学习效率的关键。ZJU Learning Assistant (ZLA) 是一款专为浙江大学学生设计的工具,旨在帮助学生快速下载和管理课件,提供成绩更新提醒,并支持多操作系统。ZLA 的出现,大大简化了课件下载和管理的过程,让学生能够更专注于学习本身。
功能特点
ZJU Learning Assistant 提供了一系列强大的功能,使其成为浙江大学学生的理想学习助手:
- 跨平台支持:ZLA 兼容 Windows、Linux 和 Mac 操作系统,满足不同设备的需求。
- 批量下载课件:支持一键批量下载课程课件,节省时间和精力。
- 下载未开放课件:即使老师未开放下载权限,也能下载课件的预览版本。
- 智云课堂支持:从智云课堂下载 PPT 并自动导出为 PDF。
- 成绩更新提醒:实时获取最新成绩,避免错过任何更新。
- 任务栏图标菜单:显示学在浙大的待办事项,并提供导出功能。
- 暗黑模式:跟随系统设置,支持暗黑模式,保护视力。
安装和使用
下载和安装
从 Release 页面 下载适用于您操作系统的最新版本,并按照以下说明进行安装:
- Windows:下载
.exe
或.msi
文件进行安装。 - Linux:下载
.AppImage
文件,赋予可执行权限后运行,或下载.deb
文件进行安装。 - Mac:下载
.dmg
文件进行安装,或下载.app.tar.gz
文件解压后运行。Intel 版本对应x86_64
,Apple Silicon 版本对应aarch64
。
自行编译
如果您希望自行编译 ZLA,请按照以下步骤操作:
-
克隆本仓库:
1
2git clone https://github.com/PeiPei233/zju-learning-assistant.git
cd zju-learning-assistant -
对于 Linux 用户,请使用以下命令安装依赖:
1
sudo apt update && sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev
-
运行
npm install
安装 Node.js 依赖。 -
运行
cargo install tauri-cli --version "^2.0.0" --locked
安装 Tauri CLI。 -
运行
cargo tauri build
进行编译,编译后的文件位于src-tauri/target/release
目录下。
使用指南
登录
打开 ZLA 后,使用浙大统一身份认证进行登录。输入学号和密码,登录成功后即可使用各种功能。
下载课件
学在浙大
选择菜单中的学在浙大,按学年和学期筛选课程,选中课程后点击刷新按钮获取课件列表。选择所需课件并点击下载按钮,课件会加入下载队列并自动下载。
智云课堂
选择智云课堂,按日期选择课堂或搜索课程,选中课件后点击下载按钮。下载的课件图片会自动整合为 PDF。
成绩更新提醒
在成绩查询页面,点击同步按钮获取最新成绩。开启自动同步功能后,ZLA 会定时获取最新成绩并提醒用户。
导出待办事项
在任务栏图标菜单中查看学在浙大的待办事项,并可以导出为 iCalendar 文件。对于 macOS 用户,还可以导入到 日历 App 或 提醒事项 App。
安全性
ZLA 是一个爬虫工具,模拟登录学在浙大、获取课件列表和下载课件的过程。ZLA 不会将您的学号和密码上传到任何服务器,登录信息使用操作系统自带的密钥管理服务进行保存。
开发背景
ZLA 的开发初衷是为了方便学生下载课件并及时获取成绩更新。原本是使用 Python 编写的爬虫脚本,后来转为使用 Rust 重写,提升了性能和稳定性。开发过程中,得到了几位好友的大力支持和帮助。
免责声明
ZLA 模拟用户在浏览器中登录学在浙大、获取课件和下载课件的过程,不会妨碍学校系统的正常工作。请在使用过程中遵守学校的相关规定。
待办事项
- 将任务栏菜单的 ToDo List 做成独立面板
- 支持同步待办到 CalDAV 服务器
- 批量下载导出智云课堂 PPT
- 增量下载
- 集成成绩更新推送
- 多线程并行获取列表优化
- 后台持续检测课件更新
- 优化前端,添加课件筛选搜索功能
由于版权原因,ZLA 不会支持自动下载智云课堂视频。