!!!本项目不支持进行虚假填报!!!仅根据前一天填报内容自动填报,以免遗忘漏报
程序为python脚本文件,修改配置文件相关信息,设置后台运行脚本,脚本会根据配置文件信息自动进行每日一报。
支持github actions服务器。
支持一键补报功能。
支持每日一报。目前在 4:00AM(report_remote)/3:00AM(report) 自动填报一次。
为了避免过多的配置,感谢@Lanszhang131的思路,利用前一天的报送信息进行填报,所以如果你真实地提交过一次,那每天会重复填报。由于默认是 4:00AM(report_remote)/3:00AM(report) 填报,所以如果你想用真实信息的话第一次在早上6点填报后修改下信息。
目前实现模拟随机IP功能,以规避IP屏蔽;连接学校VPN功能依然保留,若出现提交失败则会尝试连接后再次填报
由于OpenVPN同一时间登录登陆人数过多,现增加失败重连功能,每次连接之间会随机等待一定时间;现默认每次从主项目拉取最新代码填报;增加自定义 HTTP_PROXY
与 DISABLE_PULL_REMOTE
设置选项,具体使用说明见用法
由于OpenVPN同一时间登录登陆人数过多,现增加失败重连功能,每次连接之间会随机等待一定时间;增加自定义HTTP_PROXY的环境变量与DISABLE_OPVPN的选项
由于OpenVPN同一时间登录登陆人数过多,现随机等待600-1440秒再连接
新增 Auto Report from Remote,可以拉取远程最新的代码,不再需要每次更新,每次拉取
适配2022-03-22版本,修改字段(早日解封)
适配2022-03-20版本,增加校区(早日解封)
适配2022-02-28版本,GitHub Actions 新增连接学校VPN再填报功能
使用selenium提交表单(测试中),自动生成行程码(目前发现行程码只需要图片中有日期文字,且图片长宽比与手机差不多就行)
适配2022-01-15版,增加随申码。请真实提交随申码与行程码。不信谣不传谣!
适配2021-11-05版,DangSZS
适配2021-11-04版,修复了ShiFSH字段 issue 51,去除随申码,丰富日志记录,若出现错误,可以当天真实提交一次,等第二天再观察
适配2021-10-08版,获取当天的随申码、行程码。请真实地提交一次随申码、行程码,后续会自动采用之前上传的随申码、行程码
适配2021-06-28版,更新github action的自动打卡时间
适配2021-04-24版,暂不支持党史知识天天学
本项目仅做免费的学术交流使用。
如果你想获取最新的更新,记得右上角的watch
- fork 该仓库至你的仓库下
- 定位到你的仓库的
Settings
的Secrets
选项卡 - 添加secret(New repository secret)
NAME
设置为 USERS
VALUE
设置为 学号1,密码1;学号2,密码2
的格式,注意逗号与分号的区分,学号密码之间用逗号,每两个学号之间用分号,必须是英文半角符号,如果只有一个学号密码则不需要加分号
如果你有http代理服务器,则建议添加 HTTPS_PROXY
为你的代理服务器地址,一旦设置 HTTPS_PROXY
,则会自动关闭 OpenVPN 连接服务。
如果你不想通过拉取主项目的代码来实现自动填报,则建议添加 DISABLE_PULL_REMOTE
并设置为 true
,这样会禁用拉取主项目代码的模式。
- 定位到你仓库下的
Actions
选项卡中的Auto Report
,点击Enable workflow
,即可开启自动填报系统。
- 点击
Fetch upstream
- 点击
Fetch and merge
在 config.yaml
中设置所有需要打卡的学号密码
针对Ubuntu,编辑定时执行程序cron
crontab -e
加入以下命令:
# 程序每天4点执行一次,并将结果输出至shu_report.log
# 注意python的路径,main.py与输出日志shu_report.log的绝对路径
0 4 * * * python -u /xxx/main.py 2>&1 >> /xxx/shu_report.log
如果你服务器是UTC时区,则为
0 20 * * * python -u /xxx/main.py 2>&1 >> /xxx/shu_report.log
如果你不确定你服务器的时区,也可以每小时运行一次:
0 * * * * python -u /xxx/main.py 2>&1 >> /xxx/shu_report.log
在 config.yaml
中设置所有需要打卡的学号密码
docker build -t selfreport:release .
docker run --name selfreport selfreport:release
之后在宿主机编辑Crontab即可
# crontab -e
0 4 * * * docker start selfreport
- python3
- 依赖:
- pyyaml
- beautifulsoup4
- requests
- pillow
- rsa
感谢各位 contributors 所做的贡献。