🚁北邮疫情自动填报(Python+Github Actions)长期维护
特点:
- 每天7-8点自动多次填报(可通过main.yml修改)
- 运行失败会自动往邮箱(注册github所用邮箱)发送邮件
- 可以多人同时填报(可以帮小伙伴一起打卡哦)
- 填报情况可以使用上一次打卡数据(如需更换请于当日脚本运行前手动打卡),也可以使用固定数据(地点始终位于北邮)
- (可选) 填报结果通过Server酱推送至微信
使用详解
- 点击右上角的 Use this template 然后给仓库随便起一个名字,点击 Create repository from template
- 点击 Settings ,进入 Secrets 页面,点击右上角的 New repository secret,流程如下图所示
- 一共有两个secret,第一个Name填USERS,Value按照如下格式填写:
[
(学号:str,密码:str,用户名:str,0 or 1),
(学号:str,密码:str,用户名:str,0 or 1),
(学号:str,密码:str,用户名:str,0 or 1),
... 如果还有则继续往后面加
]
相当于列表里面有很多元组,每个元组代表一个用户,可以有任意多个。每个元组有四个元素,前两个分别为学号和密码,字符串格式(可自行通过 https://app.bupt.edu.cn/ncov/wap/default/index 登陆验证账号密码正确性,密码一般为身份证后8位),第三个为用户名(随便填,用于控制台与Server显示),第四个为是否用上一次打卡数据,0或者1,0代表使用上一次打卡数据(某一次自己在脚本运行前打卡之后都采用这次打卡数据),1代表使用固定数据(固定数据的地点始终位于北邮),以下是一个样例:
- 第二个secret的Name填写SERVER_KEY,如果不配置Server酱微信推送,那么Value里填写0即可,如果想配置的话看下一点
- (可选) Value填写Server酱的SendKey(在这里查看 https://sct.ftqq.com/sendkey),在此之前需要微信注册企业号,并加入Server酱内部应用,具体流程见 https://sct.ftqq.com/forward,看起来比较多,但也不是很麻烦,一步步照做即可
最后Actions secrets效果:
- 点击上方Actions按钮:
点击左侧的BUPT ncov auto-report Python,再点击右侧的Run workflow,如下图所示:
点击这个workflow(没看到的话请刷新一下),然后再次点进去jobs查看执行情况
- 如果准确按照上述步骤执行,你应该会看到类似的如下输出:
若想查看上图一样具体填报信息需要取消注释main.py的75行
恭喜你,你还有你的小伙伴不用为被催打卡而烦恼了~
参数更改:
更改每日打卡时间
在 .github/workflows/main.yml 中来设置每天运行的时间:
on:
schedule:
- cron: "*/20 16,23 * * *"
cron里的"*/20 16,23 * * *"代表 at every 20th minute past hour 16 and 23,然而这是UTC,北京时间为UTC+8,代表0点与7点之后每隔20分钟 https://crontab.guru/#/10_16,23_** 用这个网站来选取你想要的时间
更改打卡的固定数据
在 https://app.bupt.edu.cn/ncov/wap/default/index 进行填报,全部填完后最后不要提交,f12打开控制台,在Console页面下输入代码vm.info回车得到填报数据,替换掉 constant.py 里的INFO变量
Credit
参考了ipid/bupt-ncov-report 与 imtsuki/bupt-ncov-report-action, 十分感谢
License
MIT © zzp-seeker