PKUAutoElective项目维护指南:如何fork并自定义你的选课工具

PKUAutoElective项目维护指南:如何fork并自定义你的选课工具

【免费下载链接】PKUAutoElective北大选课网补退选阶段自动选课小工具项目地址: https://gitcode.com/gh_mirrors/pk/PKUAutoElective

PKUAutoElective是一款专为北大选课网补退选阶段设计的自动选课工具,支持本科生和研究生选课,具备验证码自动识别、多账号管理和自定义选课规则等功能。本指南将详细介绍如何fork项目并根据个人需求进行定制,让你轻松掌握个性化选课工具的维护技巧。

为什么需要Fork项目?

原项目作者已毕业停更,虽然项目不会被归档,但不再接受PR。如果你需要添加新功能、修复bug或适配选课系统更新,fork一个属于自己的分支是最佳选择。通过自定义配置和代码修改,你可以打造更符合个人选课习惯的工具版本。

准备工作:Fork与Clone仓库

1. Fork项目仓库

访问项目页面,点击右上角的"Fork"按钮创建个人副本。这将在你的账号下生成一个独立的项目分支,所有修改都将保存在这里。

2. 克隆到本地

使用以下命令将fork后的仓库克隆到本地:

$ git clone https://gitcode.com/gh_mirrors/pk/PKUAutoElective

基础自定义:配置文件修改

1. 创建个性化配置

复制示例配置文件生成个人配置:

$ cp config.sample.ini config.ini

2. 核心配置项说明

配置文件采用INI格式,主要包含以下关键部分:

  • [user]:设置学号(student_id)、密码和登录身份
  • [course]:定义待选课程列表及优先级
  • [client]:调整刷新间隔(refresh_interval)和会话池大小
  • [mutex]/[delay]:配置高级选课规则

⚠️ 注意:不要使用记事本编辑配置文件,建议使用VSCode等专业编辑器以确保UTF-8编码格式。

高级自定义:选课规则配置

互斥规则设置

当你需要在多门备选课程中只选其一(如不同院系的同一门课),可以通过互斥规则实现:

[mutex] # 格式:课程组ID = 课程1ID,课程2ID,... group1 = 00101,00102 group2 = 00203,00204

优先级高的课程会被优先提交,确保你选到更心仪的课程。

延迟规则配置

对于作为备选的课程,可以设置延迟规则,仅当名额紧张时才提交选课请求:

[delay] # 格式:课程ID = 阈值 00305 = 10

当课程剩余名额≤10时,程序才会尝试选课,帮助你平衡热门课程和保底课程的选择策略。

验证码识别模块:测试与优化

项目内置CNN模型用于验证码自动识别,位于model/cnn.20210311.1.pt。你可以通过以下命令测试识别功能:

$ cd test/ $ python3 test_cnn.py

测试将使用test/data/目录下的样本图片,如:

PKUAutoElective验证码识别样本图片

如果识别准确率下降,可能需要重新训练模型或更新图像处理逻辑。

多进程与监视器配置

多账号/多页面选课

创建多个配置文件实现多进程选课:

$ mkdir config $ cp config.ini config/config.alice.ini $ cp config.ini config/config.bob.ini

分别启动进程:

$ python3 main.py -c config/config.alice.ini $ python3 main.py -c config/config.bob.ini

服务器监控配置

通过监视器功能远程查看选课状态:

  1. 修改[monitor]配置:
[monitor] host = 0.0.0.0 port = 7074
  1. 启动时添加-m参数:
$ python3 main.py -m
  1. 配置Nginx反向代理(可选),实现外网访问监控页面。

常见问题解决

配置文件编码问题

如果遇到编码错误,删除现有config.ini,使用VSCode重新创建并以"无BOM的UTF-8"格式保存。

会话超时处理

若频繁出现会话超时错误,尝试调整以下参数:

[client] elective_client_max_life = 300 login_loop_interval = 60

自定义User-Agent

创建user_agents.user.txt文件定义自定义User-Agent池,每行一个条目,程序将优先使用自定义列表。

维护与更新建议

  1. 定期同步上游:保持与原项目的bug修复同步

    $ git remote add upstream https://gitcode.com/gh_mirrors/pk/PKUAutoElective $ git pull upstream main
  2. 版本控制:为重要修改创建分支,便于回溯

  3. 文档更新:修改代码后同步更新个人分支的README

  4. 社区交流:在原项目Issue中分享你的改进,帮助其他用户

通过以上步骤,你可以轻松fork并自定义PKUAutoElective项目,打造专属于自己的选课工具。记住合理设置刷新间隔,避免给服务器造成压力,祝大家都能选到心仪的课程!

【免费下载链接】PKUAutoElective北大选课网补退选阶段自动选课小工具项目地址: https://gitcode.com/gh_mirrors/pk/PKUAutoElective

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考