PS Since the CA signature has not been purchased, ZJU Learning Assistant (aka. ZLA) does not have a signature, so it may be intercepted by the system during downloading, installation, and operation. Please trust ZLA or compile it yourself.
Download the latest version of the corresponding system from Release and open it after installation.
.exe
.msi
file for installation..AppImage
file, grant executable permissions and run it. Or download the .deb
file to install..dmg
file to install, or download the .app.tar.gz
file to decompress and run it. Intel corresponds to the x86_64
version, and Apple Silicon corresponds to the aarch64
version.sudo apt update && sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev
to install dependenciesnpm install
to install dependenciescargo install tauri-cli --version "^2.0.0" --locked
to install Tauri v2 CLIcargo tauri build
to compile. The compiled files are in the src-tauri/target/release
directory. After opening ZLA, please log in with your Zhejiang University unified identity authentication, that is, enter your student ID and password when you were studying at Zhejiang University. Only after successful login can you download the courseware.
Click on the upper right corner of this interface to view version information and check whether there is a new version. After selecting automatic login, ZLA will automatically log in next time you open it.
After logging in, enter the following interface for downloading courseware.
At the top is a menu where you can choose to download courseware from Zhejiang University or Zhiyun Classroom or check your scores. The three buttons in the upper right corner are download list, settings and log out.
When selecting "Study at Zhejiang University" in the menu, you can select the academic year and semester to filter courses. After selecting a course, click the refresh button on the right to get a visible list of the selected courses.
After selecting the required courseware, click the Download Courseware button. The selected courseware will be added to the download queue and deleted from the courseware list.
If the automatic synchronization button on the page is turned on, the software will automatically pull the undownloaded courseware of the selected course every 3 to 5 minutes and download it automatically. You can modify the settings to add new courseware to the download list instead of automatically downloading it.
If you need to change the path for downloading or synchronizing courseware, you can enter the settings page to modify it.
When selecting Zhiyun Classroom, you can select classes by date, or you can select all courses and search for the course you want. Select the required courseware and click Download to join the download queue.
When downloading, the downloaded courseware images will be automatically integrated into PDF. You can turn this feature off in settings.
When selecting score inquiry, click the Sync Now button on the right to obtain the latest scores. If you turn on the automatic synchronization and reminder button on the page, ZLA will automatically obtain the latest scores every 3 to 5 minutes and remind you when the scores are updated. You can add the DingTalk robot webhook address in the settings to receive reminders for score updates.
Since the new version of DingTalk can only add custom robots to internal groups, if you need to use the DingTalk push function, please create an internal group first, then add the custom robot to the group and obtain the Webhook address. When adding a robot, please set the robot's security settings to custom keywords, and the keywords are成绩
.
In the taskbar icon menu of ZLA, you can view the to-do items studied at Zhejiang University, and you can also export the to-do items as. When you select Export To-Do > Export as iCalendar file in the menu, ZLA will export the to-do as an .ics
file. You can import this file into your calendar software to view your to-do items while studying at Zhejiang University. For example, if you want to be cross-platform and deduplicated, you can import into Google Calendar.
For macOS users, you can also choose to import to-do items into Calendar App or Reminders App :
Learning in ZJU
and automatically ignore duplicate to-do items. If the calendar does not exist, it will be automatically created. Calendars automatically created by ZLA are saved in iCloud by default.ZLA will automatically pop up the permission application dialog box only when using this function for the first time. If the authorization fails, you need to go to the system settings to enable it later. Open System Settings > Privacy & Security > Calendar (or Reminders ), find zju-learning-assistant and check it to give full access.
ZLA is essentially a crawler that simulates the process of logging in to study at Zhejiang University, obtaining courseware lists, and downloading courseware. Therefore, ZLA requires your student ID and password to function properly.
ZLA will not upload your student ID and password to any server. The saved student ID and password used for automatic login use the key management service that comes with the operating system (see keyring-rs for details). You can check the source code to confirm this. During use, ZLA will only access the following websites:
zju.edu.cn
: used to log in to study at Zhejiang University, obtain courseware lists, and download coursewareapi.github.com
: used to check for updatesfonts.googleapis.com
: used to download fonts Rewrite in Rust!
When QSC was broken, I used a crawler to write a Python script for calculating grade points. Later, when QSC was repaired, I used it to make a DingTalk robot push for grade updates. However, it was too troublesome to package and distribute GUI in Python, so I thought of rewriting the crawler script in another language. I saw that n+e seniors had previously created a script for automatically downloading Tsinghua University's new version of online classroom courses. I thought about how tedious it was to download ppts when I was patching the sky, so I thought about writing a similar software. After some exploration, I found that the combination of Rust + Tauri is very easy to use. At least the Rust crawler is much easier to use than the Node.js crawler, and it is close to the Python crawler experience, so I gave up Electron and switched to Tauri.
Thanks to several friends for their help during the development and testing process: @wangwhh @stormckey @VVsxmja @abmfy
ZLA actually simulates the process of logging in to Zhejiang University in your browser, getting the courseware list, and downloading courseware, and it will not hinder the normal operation of the school system. Please abide by the relevant regulations of the school when using it, and respect and protect the intellectual property rights of others. ZLA is not responsible for any of your actions, and you will be solely responsible for any consequences.
Due to copyright considerations, ZLA will not support automatic downloading of Zhiyun classroom videos.