- 增加邮件通知功能
pu口袋校园的移动端广告太多了,查看报名是否成功时一不小心就点到,故开发此功能 - 增加自动获取活动id的功能。可以自定义筛选条件,快速简洁地获得满足用户筛选需求的所有活动,无需手动复制id
- 优化用户存储逻辑,实现每个用户可以根据自己的activity_ids报名。
- 优化报名策略:
- 报名前先与服务器时间同步。
- 持续监控活动信息,可以在一定程度上避免因活动时间变更而无法及时报名的问题。
⚠️ 注意:此功能可以在config里配置,间隔时间越短越准确,同样封号或封ip的可能性也更大,非必要不建议更改 - 报名时采用三段式策略,每个快速线程发送5个报名请求。第一轮快速启动5个线程;第二轮每0.4秒启动一个一个线程,总计启动15个;第三轮每0。8秒启动一个线程,总计45个。
- 如果60秒内该活动为报名成功,说明活动人数已满,报名失败,结束该报名线程
网络要求:需要稳定的网络,不能使用外网环境
账号安全:只在可信的电脑上使用,注意保护 user_data 用户数据的安全
方法A - 直接下载(推荐新手) :
- 点击页面上绿色的
Code按钮 - 选择
Download ZIP - 解压到你电脑的任意文件夹
方法B - 用Git下载(适合有基础的用户) :
git clone -b refactor/core-and-add-features https://github.com/yiqjffeng/PU-SignUpBot.git- 打开下载的文件夹
- 在空白处点击右键,选择
在终端中打开
什么是uv? 这是一个超简单的Python环境管理工具,比传统pip快很多!
如果你没有uv,可以先用pip安装:
-
先安装uv:
- 打开终端
- 输入:
pip install uv
-
用uv安装依赖:
- 进入你下载的项目文件夹
- 在终端输入:
uv sync
- 等待完成就行啦!
然后激活虚拟环境:
- Windows用户:
.venv/Scripts/activate
- Mac/Linux用户:
source .venv/bin/activate
Note
如果您是第一次使用pip,且没有科学上网的环境,可能会遇到网络连接的错误或者下载速度很慢很慢。
这时建议您配置国内的镜像仓库,请参考这里
使用uv的小伙伴不需要在意,我已经在项目里配置好了uv的国内镜像源
Windows用户看这里 :
依次输入以下命令:
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtMac/Linux用户看这里 :
- 打开终端,进入本项目文件夹(如果你没有重命名应该是PU-SignUpBot)
- 依次输入以下命令:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- 速度超快:安装依赖比pip快好几倍
- 一键搞定:一个命令就能装好所有东西
- 自动管理:自动帮你处理环境配置
- 节省空间:占用更少的硬盘空间
在刚才的终端里输入:
python main.py运行程序后会问你是否要添加新用户,输入 y 然后按提示填写:
- 学校名称:输入你学校的完整名字(比如"山东科技大学")
- PU用户名:你在PU口袋校园的登录账号
通常为学号 - PU密码:你的登录密码
- 院系名称:你就读的院系,请务必使用你所在院系的全称(比如"经济管理学院")
- 邮箱地址(可选):填写后报名结果会发邮件通知你
小贴士:信息一定要填准确,错了会导致报名失败哦!
程序会问你要不要获取活动列表,输入 y 后:
-
先选择要不要用高级筛选(推荐用,可以精准找到想要的活动)
-
如果选高级筛选,会问你:
- 想参加什么类型的活动(如思想政治与道德修养、文化艺术与身心发展等),y是添加,n是不添加。示例如下:
当前类型: 活动分类 需要筛选此类型的活动吗?[y/n]y 0: 名称:思想政治与道德修养 是否添加至筛选? [y/n] n 1: 名称:社会实践与志愿服务 是否添加至筛选? [y/n] n 2: 名称:文化艺术与身心发展 是否添加至筛选? [y/n] n 3: 名称:学术科技与创新创业 是否添加至筛选? [y/n] n 4: 名称:社会工作与技能拓展 是否添加至筛选? [y/n] n 该类型已添加完毕。
- 想参加什么类型的活动(如思想政治与道德修养、文化艺术与身心发展等),y是添加,n是不添加。示例如下:
Warning
注意,每个学校的活动类型名称可能不一样,作者只有山东科技大学的pu账号,无法知晓其他学校的活动类型信息,故此方面可能有错误。
如果遇到错误请再issue里提出并附上日志,作者会尽快修复。
-
你的年级(23、24、25等),程序会列出来选择你对应年级的索引即可。索引从0开始位于左上角,示例如下:
当前类型: 参与年级 0: 年级:25 1: 年级:24 2: 年级:23 3: 年级:22 4: 年级:21 5: 年级:20 6: 年级:19 7: 年级:18 请选择您的年级:2
-
想参加哪个院系举办的活动 和上方添加活动类型相似,故不再例举
-
程序会列出所有符合条件的活动,每个活动会显示:
- 活动名称
- 开始报名时间
- 活动分类
- 举办组织
- 能获得的分数
-
看到想报名的活动就输入
y添加到列表
Tip
本项目任然保留了旧版手动填写活动id的功能。
请在 user_data.json 中找到你的信息,然后在 "activity_ids" 后方的 [] 中添加活动id。
多个活动id之间用英文逗号隔开。,
Note
注意活动时间和你的课表等活动不要冲突哦!
添加完活动后,程序会自动:
提前准备 - 活动实时监控,避免主办方更改时间导致报名失败
精准计时 - 自动对时,确保报名时机分毫不差
快速报名 - 活动一开始就用多个线程同时帮你报名
及时通知 - 报名成功会发邮件告诉你好消息
Important
在程序运行报名期间,请确保电脑正常运行,不要关机或者休眠。
因为这样可能会终止或暂停线程,导致报名失败哦。💔
电脑不在身边,不想打开app查看结果广告太多了,一不小心就给我下个赖安装包🙄,但想要即时收到报名结果通知?跟着下面的步骤设置:
- 在工具文件夹里新建一个文件,名字叫
.env - 打开这个文件,输入以下内容:
INFO_EMAIL_SERVER=smtp.qq.com
INFO_EMAIL_PORT=465
INFO_EMAIL_HOST=你的QQ邮箱@qq.com
INFO_EMAIL_SMTP_PASS=你的QQ邮箱授权码
怎么获取QQ邮箱授权码?
- 登录你的QQ邮箱
- 点击
设置→账户 - 找到
POP3/SMTP服务,点击开启 - 按提示发送短信,就能获得授权码了
其他邮箱设置 :
- 163邮箱:服务器改成
smtp.163.com - 其余的邮箱请自行登录在设置里查看smtp服务器地址和端口号
-
如果你想修改报名策略:先进入
/utils/activity_bot.py,然后找到_start_signup_threads(启动发送报名请求线程)和_signup_worker(发送报名请求),根据注释信息适当进行修改。 -
邮箱启用开关在根目录下的
config.py里。 -
如果你想调整活动监控时间,任然先进入
/utils/activity_bot.py,找到_monitor_start_time函数,修改min_minutes和max_minutes参数。
- 网络要稳定 - 避免使用外网,同时确保网络稳定
Tip
如果不知道是否畅通,请登录 PU口袋校园官网 进行验证
- 时间要准确 - 工具会自动对时,但电脑时间也要设置正确
- 信息要准确 - 学校、院系等信息一定要填对
- 提前添加活动 - 不要等到最后一刻才设置
Q: 登录失败了怎么办? A: 检查用户名密码对不对,确认能在PU网页正常登录,检查网络环境
Q: 找不到想报名的活动?
A: 检查筛选条件是不是太严格了,试试放宽条件
Q: 报名失败了怎么办? A: 可能是名额满了,或者不符合参加条件
Q: 收不到邮件通知? A: 检查邮箱设置对不对,看看logs里的错误日志信息,检查垃圾邮件文件夹
✅ 可以做的:
- 在自己的电脑或者服务器上使用
- 帮同学朋友报名(经过他们同意)
- 合理使用,不要恶意刷活动
Warning
由于账密是明文存储的,泄露可能导致账号封禁、身份信息泄露等一系列后果。
请务必在相信的环境下使用 🔐
❌ 不能做的:
- 不要在公共电脑上保存账号密码 🚫
- 不要泄露他人的账号信息 🚫
- 不要用来干扰正常的活动报名秩序 🧨
- 先看看常见问题 - 上面的解决办法能解决大部分问题
- 检查网络连接 - 确保网络正常,能访问PU口袋校园
- 重新运行试试 - 有时候重新启动就能解决问题
- 寻求帮助 - 可以在GitHub上提交问题,大家一起解决
祝您大学生活不再受PU困扰!