|
1 | | -**请完整阅读以下所有内容, 以对本软件有一个完整的了解, 如果还有问题请提交 `Issue`; 如果您对计算机使用或北师大抢课系统一无所知, 请勿使用本软件, 本人不提供相关计算机使用教学; 请不要向他人直接分享安装包, 以确保每个使用者都从本页面下载, 并都完整阅读了使用说明; 本项目仅供学习交流使用, 开源免费. 请勿用于非法用途, 请严格遵守开源协议, 请勿滥用, 请勿使用此项目牟利, 请自行承担使用此项目的风险** |
| 1 | +**请完整、仔细阅读使用说明, 如果还有问题请提交 `Issue`; 如果您对计算机使用或北师大抢课系统一无所知, 请勿使用本软件, 本人不提供相关计算机使用教学; 请不要向他人直接分享安装包, 以确保每个使用者都从本页面下载, 并都完整阅读了使用说明; 本项目仅供学习交流使用, 开源免费. 请勿用于非法用途, 请严格遵守开源协议, 请勿滥用, 请勿使用此项目牟利, 请自行承担使用此项目的风险** |
2 | 2 |
|
3 | 3 | # 小鸦抢课 |
| 4 | + |
4 | 5 | 一个使用简单, 开源安全的北师大自动抢课/蹲课程序, 支持公选课/专业课, 支持批量抢课/蹲课, 欢迎点亮 `Star` 关注本项目~ |
5 | 6 |
|
6 | 7 |  |
7 | 8 |
|
8 | | -# <mark>使用前必读</mark> |
9 | | -- 第一次启动时会自动联网下载 `chromium` (浏览器内核, 见软件界面的左下角), 会消耗一定的时间 (取决于你的网络状况), 请耐心等待~ (之后启动就不用了); 如果一段时间后显示 `安装失败`, 请重启软件再试一次并确保网络畅通 |
10 | | -- 请提前确认各项信息填写正确、无课程时间冲突、剩余学分足够 |
11 | | -- 为确保网络环境流畅, 建议不要去人多的地方抢课 |
12 | | -- **抢课时, 请提前两三分钟开启抢课模式即可**; 由于抢课模式下没有重启机制和 `Playwright` 的特性, 消耗内存会逐渐增加, 提前开启太久可能会导致你的设备内存不足 (蹲课模式下浏览器会定期重启, 没有这个问题) |
13 | | -- **其他年级抢课开始前后, 教务系统会显示账号已锁定 (详见学校公众号发布的抢课说明), 与小鸦抢课无关** |
14 | | -- 抢课/蹲课的成功率不是百分之百, 请在软件提示结束/成功后手动二次确认选课结果; 同时, 千万不要将本软件作为唯一的选课手段 |
15 | | -- 据传, 选课系统同时只支持约三/四/五(说法不一)个页面同时操作, 小鸦抢课会为每门课都打开一个页面 (`单线程蹲课` 模式除外), 所以如果要同时选多门课, 请自行承担风险 (但是我这边测试的时候, 排除了上面说的其他年级抢课的影响, 同时多线程蹲六门课也是正常的, 所以可能是误传) |
| 9 | +# <mark>使用说明</mark> |
16 | 10 |
|
17 | | -| 选项 | 说明 | |
18 | | -| :---: | :---: | |
19 | | -| 抢课模式 | 见下面的抢课模式说明 | |
20 | | -| 刷新频率 | 设太快可能会起反效果, 一般 `每秒` 即可 | |
21 | | -| 课程类别 | 请确保添加的所有课程都在分类里存在<br>如果分类不对, 抢课将会失败<br>对于大一新同学, 一个简单的判断方式是: 你必修的课、专业选修课都不在 `选公共选修课` 里<br>且大多数公选课上课班号都只有 `01` | |
22 | | -| 学号密码 | 你的学号和密码, 所有信息都保存在你的设备本地 | |
23 | | -| 记住密码 | 勾选后, 下次打开程序会自动填写密码 | |
24 | | -| 显示浏览器 | 勾选后, 会显示浏览器窗口, 用于调试 | |
25 | | -| 蹲课保护 | **仅对蹲课生效**. 勾选后, 发生任何错误都会强制重启<br>可以避免一些网络错误导致的蹲课中断 | |
26 | | -| 添加课程 | 输入课程代码和上课班号, 点击 `+` 即可添加一门课程 | |
| 11 | +## 1 下载安装 |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | +> `MacOS` 下软件未签名 (~~贫穷的小叶子买不起贵得要死的 `Apple Developer` 账号~~), 所以 `MacOS` 下可能提示 `软件已损坏`,请参见[这篇文章](https://www.mac2m.com/article/450/)修复,或自行下载源码进行编译 (见文末的 `手动构建方法`) |
| 18 | +
|
| 19 | +## 2 等待下载 `chromium` |
| 20 | + |
| 21 | +**第一次**启动时会自动联网下载 `chromium` (浏览器内核, 用来抢课, 见软件界面的左下角), 会消耗一定的时间 (取决于你的网络状况), 请耐心等待; 如果一段时间后显示 `安装失败`, 请重启软件再试一次并确保网络畅通 |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +## 3 选择模式 |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | +### `抢课模式` 说明 |
| 30 | + |
| 31 | +总而言之, 要抢课就用 `抢课` 模式, 插电蹲课用 `多线程蹲课`, 边上课边蹲课用 `单线程蹲课`; 详细说明如下: |
27 | 32 |
|
28 | | -## 抢课模式说明 |
29 | 33 | | 模式 | 开启教务页面数 | 如果系统未开启 | 如果可选人数为零 | 多个课程中一个成功 | 多个课程中一个出错 | 速度 | 耗电量 | |
30 | 34 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | |
31 | 35 | | 抢课 | 每个课程一个 | 刷新 | 退出 | 继续剩余课程 | 继续剩余课程 | 快 | 课程越多越高 | |
32 | 36 | | 多线程蹲课 | 每个课程一个 | 退出 | 刷新 | 继续剩余课程 | 退出 | 快 | 课程越多越高 | |
33 | 37 | | 单线程蹲课 | 一个 | 退出 | 刷新 | 退出 | 退出 | 课程越多越慢 | 较低 | |
34 | 38 |
|
35 | | -> 如果用电脑在上课的时候挂着蹲课, 建议用 `单线程蹲课` 模式, ~~别上着上着课电脑没电了~~ |
| 39 | +### `课程类别` 说明 |
| 40 | + |
| 41 | +北师大的选课系统分为 `按开课计划选课`、`按上课时间选课`、`选公共选修课` 三个大类, 其中 `按开课计划选课` 和 `选公共选修课` 可以选的课程有部分重叠, 而 `按上课时间选课` 则包含了所有课程 |
36 | 42 |
|
37 | | -## 视频示例(小红书) |
38 | | - |
| 43 | +小鸦抢课只支持 `按开课计划选课` 和 `选公共选修课` 两个类别, 所以请确保你要选的课程在这两个类别里 |
39 | 44 |
|
40 | | -## 下载地址 |
41 | | -[点击前往 `Release` 下载](https://github.com/LeafYeeXYZ/BNUCourseGetter/releases)适用于你的设备的最新版本程序 (`Windows` 就下载 `xyqk-windows-amd64.exe`, `MacOS` 就下载 `xyqk-darwin-arm64.zip`), 双击运行即可 |
| 45 | +对于大一新同学, 一个简单的判断方式是: 你必修的课、专业选修课都不在 `选公共选修课` 里, 且大多数 `选公共选修课` 里的课程的上课班号只有 `01` |
42 | 46 |
|
43 | | -> `1.6.0` 及以后版本已经提供了 `MacOS` 的应用文件 (此前仅提供了 `Windows` 和 `Linux` 版), 但 `MacOS` 下软件未签名 (~~买不起贵得要死的 `Apple Developer` 账号~~), 所以 `MacOS` 下可能提示软件已损坏,请参见[这篇文章](https://www.mac2m.com/article/450/)修复,或自行下载源码进行编译, 见文末的 `手动构建方法` |
| 47 | +## 4 填写信息 |
44 | 48 |
|
45 | | -## 技术相关 |
46 | | -后端基于 `Go`, 前端基于 `TypeScript`, 使用 `Wails`、`React`、`Playwright`、`AntD` 等工具或框架开发 |
| 49 | +请提前确认各项信息填写正确、无课程时间冲突、剩余学分足够、**网络环境流畅** (建议不要去人多的地方抢课) |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | +| 选项 | 说明 | |
| 54 | +| :---: | :---: | |
| 55 | +| 学号密码 | 你的学号和密码, 所有信息都保存在你的设备本地 | |
| 56 | +| 记住密码 | 勾选后, 下次打开程序会自动填写密码 | |
| 57 | +| 显示浏览器 | 勾选后, 会显示浏览器窗口, 用于调试; **正常抢课时无需开启** | |
| 58 | +| 蹲课保护 | **仅对蹲课生效**. 勾选后, 发生任何错误都会强制重启; 可以避免一些网络错误导致的蹲课中断 | |
| 59 | + |
| 60 | +## 5 添加课程 |
| 61 | + |
| 62 | +请首先从教务系统上找到你要选的课程的 `课程号` 和 `上课班号` (如下图所示), 然后填写到软件中, 并点击 `+` 添加一门课程 |
| 63 | + |
| 64 | +小鸦抢课支持添加多门课程, 但请确保**所有**添加的课程属于**同一类别** (`按开课计划选课` 或 `选公共选修课`) |
| 65 | + |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | +## 6 开始抢课 |
| 71 | + |
| 72 | +**抢课时, 请提前1-3分钟开启抢课模式即可**; 由于抢课模式下, 小鸦抢课不会通过内部的重启机制来降低内存消耗, 消耗内存会逐渐增加, 所以提前开启太久可能会导致你的设备内存不足 (蹲课模式没有这个问题) |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | +## 7 其他注意事项 |
| 77 | + |
| 78 | +- **其他年级抢课开始前后, 教务系统会显示账号已锁定 (详见学校公众号发布的抢课说明), 与小鸦抢课无关** |
| 79 | +- 抢课/蹲课的**成功率不是百分之百**, 请在软件提示结束/成功后手动二次确认选课结果; 同时, 千万**不要将本软件作为唯一的选课手段** |
| 80 | +- 据传, 选课系统同时只支持约三/四/五(说法不一)个页面同时操作, 小鸦抢课会为每门课都打开一个页面 (`单线程蹲课` 模式除外), 所以如果要同时选多门课, 请自行承担风险 (但是我这边测试的时候, 排除了上面说的其他年级抢课的影响, 同时多线程蹲六门课也是正常的, 所以可能是误传 ~~什么都市传说~~) |
47 | 81 |
|
48 | | -由于没有选择直接发送请求, 而是以浏览器自动化的方式实现, 所以使用风险较小, 但是效率也会低一些 |
| 82 | +# 技术说明 |
| 83 | +后端基于 `Go`, 前端基于 `TypeScript`, 使用 `Wails`、`React`、`Playwright`、`AntD` 等工具或框架开发; 由于抢课时没有选择直接发送请求, 而是以浏览器自动化的方式实现, 所以使用风险较小, 但是效率也会低一些 |
49 | 84 |
|
50 | 85 | `1.4.0` 及以前的二进制文件仅在 `Windows` 下测试过, `1.5.0` 及以后的二进制文件仅在 `MacOS` 下测试过, 其他平台如果有问题请提交 `Issue` 或 `Pull Request` |
51 | 86 |
|
52 | | -### 手动构建方法 |
| 87 | +## 手动构建方法 |
53 | 88 | 1. 安装 `Go`、`Node.js`、`Bun` (请自行前往官网下载安装) |
54 | 89 | 2. 执行 `go install github.com/wailsapp/wails/cmd/wails@latest` 安装 `Wails` |
55 | 90 | 3. 执行 `git clone https://github.com/LeafYeeXYZ/BNUCourseGetter.git` 克隆本项目 |
|
0 commit comments