/daka

Primary LanguagePythonMIT LicenseMIT

🚁北邮疫情自动填报(Python+Github Actions)长期维护

Action Badge Python Version

特点:

  • 每天7-8点自动多次填报(可通过main.yml修改)
  • 运行失败会自动往邮箱(注册github所用邮箱)发送邮件
  • 可以多人同时填报(可以帮小伙伴一起打卡哦)
  • 填报情况可以使用上一次打卡数据(如需更换请于当日脚本运行前手动打卡),也可以使用固定数据(地点始终位于北邮)
  • (可选) 填报结果通过Server酱推送至微信 ​

使用详解

  1. 点击右上角的 Use this template 然后给仓库随便起一个名字,点击 Create repository from template
  2. 点击 Settings ,进入 Secrets 页面,点击右上角的 New repository secret,流程如下图所示
  1. 一共有个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代表使用固定数据(固定数据的地点始终位于北邮),以下是一个样例:

  1. 第二个secret的Name填写SERVER_KEY,如果不配置Server酱微信推送,那么Value里填写0即可,如果想配置的话看下一点
  2. (可选) Value填写Server酱的SendKey(在这里查看 https://sct.ftqq.com/sendkey),在此之前需要微信注册企业号,并加入Server酱内部应用,具体流程见 https://sct.ftqq.com/forward,看起来比较多,但也不是很麻烦,一步步照做即可

最后Actions secrets效果:

  1. 点击上方Actions按钮:

点击左侧的BUPT ncov auto-report Python,再点击右侧的Run workflow,如下图所示:

点击这个workflow(没看到的话请刷新一下),然后再次点进去jobs查看执行情况

  1. 如果准确按照上述步骤执行,你应该会看到类似的如下输出:

若想查看上图一样具体填报信息需要取消注释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-reportimtsuki/bupt-ncov-report-action, 十分感谢

License

MIT © zzp-seeker

好用的话别忘了:star:哦 :wink: