Skip to content
This repository has been archived by the owner on Jun 4, 2023. It is now read-only.

Do1e/NJU_Health-Checkin

Repository files navigation

NJU_Health-Checkin


2023-06-04 11: 再也不用健康打卡了(希望如此),此仓库将存档不再维护,感谢大家的使用

2023-02-05 12: 添加“当前感染状态”配置,感谢 @Coegle 的PR。删除上次核酸时间配置。其他的配置在手机界面中虽然没有了,但在实际链接中还是以默认值存在。

2022-11-13 15: 新增配置文件选择,可部署多个账号;使用NJUlogin库进行登录

2022-11-04 22: Github Action抽风,更改了一下Python版本,现在可以正常运行了

2022-10-29 11: 新增核酸时间配置,新增支持数字格式,表示在打卡时间前x小时做了核酸,默认为24

2022-10-19 11: 增加时区获取以保证"昨天"的计算方法在不同平台上的正确性

2022-09-27 17: 增加并修复14天内离宁选项控制,修复研究生学号长度为10的问题,感谢 @Coegle 的PR

2022-09-03 18: 修复部分同学学号长度为12的问题,感谢 @i-Pear 的PR

2022-09-02 18: 已修复登录问题,感谢 @log2dx 的PR

2022-09-02 16: 似乎还存在问题,暂时还没有修复

2022-09-02 11: 更新适用于最新的统一身份认证安全登录


使用方法

  • 在config.json中填写student_idpasswordUser_Agent(见抓包方法)、上次核酸时间(default表示默认昨天做的核酸)、打卡地点(default表示默认昨天的打卡地点,因此地点更新只需在手机上手动打卡一次即可),其中student_id、password为必须修改的项目,其余的可以使用config.json中的默认值,具体介绍见config.json解析
  • 运行python checkin.py即可完成打卡一次
  • 或者python checkin.py -c config.json来选择指定的配置文件
  • 若要每天12:00自动运行,请在crontab -e中添加以下命令:0 12 * * * cd /path/to/checkin && python checkin.py >> checkin.log 2>&1
  • 或自行查找如何设置Windows下的定时任务

Github Actions

🚨注意,在Github Actions运行时请勿修改config.json,否则会造成信息泄露并且!无效!,所有的修改请使用secret

  • 右上角fork本仓库,之后点击Create fork

1662048592065

  • 在自己的仓库中点击 Settings -> Secrets -> Actions -> New repository secret

1662048748666

  • 对config.json中的每一项进行都新建一个secret(student_id、password为必填项,其余默认值见config.json)。自动转换为大写是正常现象

1662088555802 1662096230714

  • 点击 Actions -> I understand

1662048939547

  • 最后Enable Actions即可,每天中午12:00自动运行,或修改.github/workflows/checkin.yml中的cron字段来修改运行时间

1662049002323

config.json解析

  • student_id:学号
  • password:统一身份认证密码
  • location:打卡地址,"default"表示默认昨天的打卡地点,因此地点更新只需在手机上手动打卡一次即可,或者直接使用字符串表示打卡地点,如"江苏省南京市栖霞区九乡河东路159号"
  • body_temp_ok:您的体温是否正常
  • health_status:您的其他健康情况
  • my_health_code_color:您今日的苏康码显示颜色
  • fam_mem_health_code_color:您共同居住人今日的苏康码显示颜色
  • leave_NJ:最近14天是否离宁,"default"表示由程序自动检测最近14天的打卡地址是否含有'南京市'字符串,"0"表示否,"1"表示是
  • try_N_times:若打卡失败的重试次数,不写为默认0(不重试)
  • infection_status:感染状态,"1","2","3" 分别表示"一直阴性","已转阴","阳性"

抓包方法

  • 在电脑上下载WireShark,并安装
  • 打开电脑热点,手机连接上

1662040547198

  • 打开cmd,输入ipconfig,找到IPv4地址为192.168.XX.1(XX为1~255之间的任意数字都可)的连接,记下其名字,如“本地连接*12”

1662040857089

  • 手机打开打卡界面,填入信息但暂时不点击“提交”
  • 打开WireShark,找到之前记下的连接名字

1662041047834

  • 双击这个连接,之后手机马上点击“提交”并确定,此时WireShark会进行抓包,此时点击“停止捕获分组”

1662041181671

  • 在搜索框中输入"http",之后回车
  • 找到包含下图中红框中的项目,单击它

1662041435032

  • 在下面的窗口展开Hypertext Transfer Protocol,便可以找到需要填入的User_Agent,右击,复制值,粘贴进config.json中即可(注意json中的引号不要删掉了)

1662041538194

1662041793462

🚨请务必如实上报健康状况,如有异地出行、身体状况变动、本人或家人健康码非绿色,请停止使用此脚本。

参考&感谢

yegcjs/NJU_Health-Checkin

About

南京大学健康打卡

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages