本打卡脚本仅供学习交流使用,请勿过分依赖。开发者对使用或不使用本脚本造成的问题不负任何责任,不对脚本执行效果做出任何担保,原则上不提供任何形式的技术支持。
本仓库基于原版,参考修改版并进行修改,增加对出校申请和跨校区报备的支持。目前正持续更新以尽量使得每一天都可以自动打卡,愿完全放开的日子早日到来。
- 20220407: 本人基于之前的脚本,并进行修改以适应现在的打卡版本
- 20220408: 在SECRET中增加是否执行操作的选项,以适应更多需求
- 20220421: 增加每日上传两码功能
- 20220506: 恭喜解封,源代码可用,但增加每日出校报备
- 20220509: 解决打卡系统post链接被修改,上传两码需要GID的问题
- 20220510: 解决上传两码需要sign的问题
- 20220513: 恭喜自动授权安康码,不再需要自动上传安康码
- 20220706: 增加对于不在校等状态的支持,可能有bug
- 20220729: 修改了行程卡生成方式为截图拼贴,修改了登录部分代码绕开验证码
-
写在前面:请在自己fork的仓库中修改,并push到自己的仓库,不要直接修改本仓库,也不要将您的修改pull request到本仓库(对本仓库的改进除外)!如果尚不了解github的基本使用方法,请参阅使用议题和拉取请求进行协作/使用复刻和使用议题和拉取请求进行协作/通过拉取请求提议工作更改。
-
将本代码仓库fork到自己的github,并授权打卡系统从权威机构获取安康码信息。
-
修改上报信息:在runme.py里直接修改三个data即可
-
上传自己的行程卡:行程卡没法自动从微信小程序获取,因为需要手机验证。所以在这里实际上是利用截图伪造新日期的行程卡。从微信小程序的行程卡截图,存在目录下,建议把名字改为xcko.jpg。由于字体的缘故,截图必须从微信小程序!!
-
travelcard.py是用来生成行程卡的脚本。是通过拼贴数码的图片实现的。在travelcard.py里修改left,upper,right,down为截图中日期、时间部分的左上右下的位置。sour:行程卡截图的文件名,默认是xcko.jpg。dest:新生成的行程卡的文件名,默认是xck.jpg
-
主程序是runme.py。
程序的逻辑是首先登录健康平台,如果登录失败会直接退出。
然后按照选项去执行任务。
在做跨校区报备或出校报备之前,会先判断是否在校,如果不在校就不会进行。
-
yml:在schedule cron部分设定执行任务的周期.在最下面写你要执行的任务
-
将修改好的代码提交到自己的仓库。
-
点击Actions选项卡,点击
I understand my workflows, go ahead and enable them
. -
点击Settings选项卡,点击左侧Secrets,点击New secret,创建名为
STUID
,值为自己学号的secret。用同样方法,创建名为PASSWORD
,值为自己统一身份认证密码的secret。以上数据不会被公开。 -
默认的打卡时间是每天的上午10:00。如需选择其它时间,可以修改
.github/workflows/report.yml
中的cron
,详细说明参见安排的事件,请注意这里使用的是国际标准时间UTC,北京时间的数值比它大8个小时。建议修改默认时间,避开打卡高峰期以提高成功率。 -
在Actions选项卡可以确认打卡情况。
-
在Github个人设置页面的Notifications下可以设置Github Actions的通知,建议打开Email通知,并勾选"Send notifications for failed workflows only"。请及时查看邮件,如果失败会进行通知。
-
如果觉得这个仓库对你有用的话,给个星星✨吧~
要在本地运行测试,需要安装python 3。我们假设您已经安装了python 3和pip 3,并已将其路径添加到环境变量。
pip install -r requirements.txt
如果在本地进行测试,请执行:
python runme.py [STUID] [PASSWORD]
其中,[STUID]
是学号,[PASSWORD]
是统一身份认证的密码明文.
后面可以加上选项:
-r 上报健康信息 默认开,要关闭请加 -r n
-u 更新行程卡 默认开,要关闭请加 -u n
-c 跨校区报备 默认关,要开启请加 -c 或-c y
-o 出校报备 默认关,要开启请加 -o 或-o y
如:不更新行程卡,进行跨校区报备
python runme.py PB19890604 xjsdfjk -c -u n