{"id":22771285,"url":"https://github.com/leafyeexyz/bnucoursegetter","last_synced_at":"2026-01-08T04:18:57.263Z","repository":{"id":238079518,"uuid":"795826182","full_name":"LeafYeeXYZ/BNUCourseGetter","owner":"LeafYeeXYZ","description":"小鸦抢课, 图形化自动抢课或蹲课工具, 北师大/北京师范大学/BNU.      Automated course selection tool for Beijing Normal University.","archived":false,"fork":false,"pushed_at":"2024-05-26T02:55:18.000Z","size":299,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-30T02:17:59.865Z","etag":null,"topics":["automation","beijing-normal-university","bnu","go","golang","javascript","playwright","react","reactjs","typescript","vite","wails","wails-app"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LeafYeeXYZ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-04T07:03:24.000Z","updated_at":"2024-06-04T08:01:10.498Z","dependencies_parsed_at":"2024-05-09T08:27:55.717Z","dependency_job_id":"5bd96738-75a2-48b8-9778-39d2f6c8bdb0","html_url":"https://github.com/LeafYeeXYZ/BNUCourseGetter","commit_stats":null,"previous_names":["leafyeexyz/bnucoursegetter"],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeafYeeXYZ%2FBNUCourseGetter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeafYeeXYZ%2FBNUCourseGetter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeafYeeXYZ%2FBNUCourseGetter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeafYeeXYZ%2FBNUCourseGetter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LeafYeeXYZ","download_url":"https://codeload.github.com/LeafYeeXYZ/BNUCourseGetter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249014161,"owners_count":21198537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","beijing-normal-university","bnu","go","golang","javascript","playwright","react","reactjs","typescript","vite","wails","wails-app"],"created_at":"2024-12-11T16:13:04.548Z","updated_at":"2026-01-08T04:18:57.257Z","avatar_url":"https://github.com/LeafYeeXYZ.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":" - **请完整、仔细阅读使用说明, 如果还有问题请提交 `Issue`**\n - **本项目仅供学习交流使用, 开源免费**\n - **请勿用于非法用途, 请严格遵守开源协议, 请勿滥用, 请勿使用此项目牟利, 请自行承担使用此项目的风险**\n - **抢/蹲课成功率并非百分百 (即使软件内提示抢课成功), 请手动确认结果**\n\n# 小鸦抢课\n\n一个使用简单, 开源安全的北师大自动抢课/蹲课程序, 支持公选课/专业课, 支持批量抢课/蹲课, 欢迎点亮 `Star` 关注本项目~\n\n![](./readme/intro.png)\n\n# 1 \u003cmark\u003e使用说明\u003c/mark\u003e\n\n## 1.1 下载安装\n\n**注: 请下载最新版 (即你下载时标注有 `latest` 的版本), 图中的版本可能不是最新的**\n\n![](./readme/1.png)\n\n![](./readme/2.png)\n\n\u003e `MacOS` 下软件未签名, 所以 `MacOS` 下可能提示 `软件已损坏`，请参见[这篇文章](https://www.mac2m.com/article/450/)修复，或自行下载源码进行编译 (见文末的 `手动构建方法`), 或安装 `Windows` 虚拟机使用 `Windows` 版本 (不推荐)\n\n\u003e 偶尔你会发现一个版本号比 `latest` 版本更高的版本, 这是小鸦抢课的测试版. 测试版通常会加入一些新功能, 但没有经过充分测试, 可能会有一些问题, 所以请谨慎使用.\n\n## 1.2 使用教程\n\n\u003cmark style=\"font-size: 3rem;\"\u003e首次开启软件会自动显示教程\u003c/mark\u003e, 也可以点击右上角的 `?` 图标再次查看教程. 下面是软件内教程提到的一些额外的详细信息 (选读)\n\n### 1.2.1 抢课模式详细说明\n\n总而言之, 要抢课就用 `抢课` 模式, 插电蹲课用 `多线程蹲课`, 边上课边蹲课用 `单线程蹲课`\n\n| 模式 | 开启教务页面数 | 如果系统未开启 | 如果可选人数为零 | 多个课程中一个成功 | 多个课程中一个出错 | 速度 | 耗电量 |\n| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n| 抢课 | 每个课程一个 | 刷新 | 退出 | 继续剩余课程 | 继续剩余课程 | 快 | 课程越多越高 |\n| 多线程蹲课 | 每个课程一个 | 退出 | 刷新 | 继续剩余课程 | 退出 | 快 | 课程越多越高 |\n| 单线程蹲课 | 最多两个 | 退出 | 刷新 | 退出 | 退出 | 课程越多越慢 | 较低 |\n\n### 1.2.2 课程类别详细说明\n\n北师大的选课系统分为 `按开课计划选课`、`按上课时间选课`、`选公共选修课` 三个大类, 其中 `按开课计划选课` 和 `选公共选修课` 可以选的课程有部分重叠, 而 `按上课时间选课` 则包含了所有课程\n\n小鸦抢课只支持 `按开课计划选课` 和 `选公共选修课` 两个类别, 所以请确保你要选的课程在这两个类别里\n\n对于大一新同学, 一个简单的判断方式是: 你必修的课、专业选修课都不在 `选公共选修课` 里, 且大多数 `选公共选修课` 里的课程的上课班号只有 `01`\n\n### 1.2.3 都市传说\n\n据传, 选课系统同时只支持约三/四/五（说法不一）个页面同时操作, 小鸦抢课会为每门课都打开一个页面 (`单线程蹲课` 模式除外), 所以如果要同时选多门课, 请自行承担风险 (但是我这边测试的时候, 排除了上面说的其他年级抢课的影响, 同时多线程蹲六门课也是正常的, 所以应该是误传)\n\n# 2 开发者说明\n\n后端基于 `Go`, 前端基于 `TypeScript`, 使用 `Wails`、`React`、`Playwright`、`AntDesign` 等工具或框架开发; 由于抢课时没有选择直接发送请求, 而是以浏览器自动化的方式实现, 所以使用风险较小, 但是效率也会低一些\n\n`1.4.0` 及以前的二进制文件仅在 `Windows` 下测试过, `1.5.0` 及以后的二进制文件仅在 `MacOS` 下测试过, 其他平台如果有问题请提交 `Issue` 或 `Pull Request`\n\n## 2.1 手动构建方法\n\n1. 安装 `Go`、`Node.js`、`Bun` (请自行前往官网下载安装)\n2. 执行 `go install github.com/wailsapp/wails/v2/cmd/wails@latest` 安装 `Wails`\n3. 执行 `git clone https://github.com/LeafYeeXYZ/BNUCourseGetter.git` 克隆本项目\n4. 执行 `cd BNUCourseGetter` 进入项目目录\n5. 执行 `wails build` 编译项目\n6. 在 `build/bin` 目录下找到编译好的二进制文件, 执行即可\n\n# 3 Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=LeafYeeXYZ/BNUCourseGetter\u0026type=Date)](https://www.star-history.com/#LeafYeeXYZ/BNUCourseGetter\u0026Date)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleafyeexyz%2Fbnucoursegetter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleafyeexyz%2Fbnucoursegetter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleafyeexyz%2Fbnucoursegetter/lists"}