此脚本只供学习交流使用,切勿过度依赖,切勿给学校防疫工作带来麻烦,使用该脚本如果带来问题由本人承担,相关作者不承担任何责任,不提供任何技术支持
北邮的疫情打卡自动填报,支持每日定时打卡,多人打卡,微信推送打卡状态,白嫖github action支持
如果帮到你了就点个:star:吧~
- 定时打卡
- 多人打卡
- 微信推送(server酱、WxPusher)
- github action
2022-03-31:由于切换到统一登录所造成的打卡失效问题已经修复
2022-04-03:支持Server酱微信推送,配置更简单
├── clockIn // 代码及配置文件目录
│ ├── clockIn_action.py // github action打卡脚本
│ ├── clockIn.py // 打卡脚本,只会执行一次,需要配合类似cron等具有支持定时功能的服务实现每日打卡
│ ├── clockIn_timing.py // 无需定时服务支持,支持每日打卡
│ ├── config.json // 配置文件
│ └── req_model.py // 请求模型
├── docker-compose.yml // docker compose配置
├── img
├── LICENSE
├── README.md
└── requirements.txt // 相关依赖
项目提供了两种打卡方式,如果你没有自己的服务器,可以选择第一种github action的方式进行打卡,如果你有自己的服务器,也可以选择第二种方式将项目部署到自己的服务器上。
注:项目默认读取前一天的打卡信息进行提交,所以,如果前一天没有打卡信息,需要手动打卡一次;如果存在物理地点变更的情况,也请记得先手动打卡一次
-
Fork本仓库,然后进入自己的仓库
-
准备自己的配置,复制模板的内容。
-
点击自己仓库右上角的settings,点击左边的Secrets,再点击Actions,选择右上角的New repository secret,如下图,新建一个secret,Name为DATA,在Value里粘贴刚刚复制的内容,并补齐对应的信息,如果需要微信推送,则根据微信推送一节中描述,如果是Server酱则填上
sendKey
,如果是WxPusher则填上appToken
以及uid
,如果不需要则可以空着 -
设置好环境变量后点击你的仓库上方的Actions选项,第一次打开可能需要点击
I understand...
按钮,确认在Fork的仓库上启用GitHub Actions,以及点击下面的bupt-clockIn
,再点击右上角的enable workflow
,以启动任务 -
任意发起一次commit,可以参考以下步骤
-
提交完就设置好自动打卡了,第一次提交会自动执行一次,可以看一下仓库主页的Actions,按照下图步骤依次点击,如果看到填报信息,代表自动打卡部署成功了
有两种方式,如果你喜欢使用cron,可以使用第一种方式,如果你喜欢使用docker,可以使用第二种方式
首先是在服务器上clone本项目,并更改config.json
文件的内容
-
安装所需依赖:
pip install -r requirements.txt
-
设置定时任务,例如
30 9 * * * python /home/kale/bupt-clockIn/clockIn.py
即可在每日的9点30分进行自动打卡
-
项目根目录下有
docker-compose.yml
文件,输入命令:docker-compose up
保持容器后台运行,即可实现每日打卡。
项目的配置主要是config.json
文件里面的参数:
注:不要将自己的学号和密码填到config.json并进行commit,如果选择github action的方式进行打卡,无需修改config文件的内容,只需要模仿这个格式将新建secret填入信息,请仔细按照2.2.1节的步骤操作!
如下,username
代表自己的学号,password
代表自己的密码,time
可以修改默认自动打卡的时间,在github action模式下无效,默认是9:30
,如修改为08:30
则是每天8:30
进行打卡,这里注意如果时间只有一位数一定要在前面添加0
,比如8:30
是错误的,应该改为08:30
,appToken
以及uid
代表选择WxPusher作为自己的微信推送的参数,sendKey
代表使用Server酱作为自己的微信推送的参数,选择了其中一种推送方式,另外一种可以删去
-
单人模板
{ "kale": { "username": "", "password": "", "time": "08:00", "appToken": "", "uid": "", "sendKey": "" } }
-
多人模板
{ "kale": { "username": "", "password": "", "time": "08:00", "appToken": "", "uid": "", "sendKey": "" }, "kale2": { "username": "", "password": "", "time": "08:15", "appToken": "", "uid": "", "sendKey": "" } }
如果不需要微信推送服务,则可以忽略该节,相关配置中的字段可以为空。项目支持Server酱推送以及WxPusher推送,推荐使用Server酱进行推送,配置非常简单,项目也不会移除对WxPusher的支持。
-
点击进入Server酱,微信扫码登录
-
登录成功后复制
SendKey
,将SendKey
记录到config
中的sendKey
字段 -
配置完成
例如:
{ "username": "2021xxxxxx", "password": "xxxxxxxxxx", "time": "09:30", "sendKey": "xxxxx" }
-
根据 WxPusher的文档首先注册并且创建应用,注册时会提示appToken
,记录到config.json
的appToken
字段中 -
创建完成后扫码关注应用,根据文档说明拿到自己的uid
填到config.json
中的uid
字段中 -
微信推送服务配置完成例如:{ "username": "2021xxxxxx", "password": "xxxxxxxxxx", "time": "09:30", "appToken": "AT_xxxxxxxxxxxxxxxxxxxx", "uid": "UID_xxxxxxxxxxxxxxxxxxxx" }