本项目可每天自动检测您是否已填报某校的每日一报,如果未填报,则可根据上次信息自动填报,并提醒您下次不要忘记填报 : )
项目仅供学习交流之用,请勿用于其它用途。请遵守当地防疫守则。
项目地址:https://github.com/panghaibin/shuasr
-
支持在 GitHub Actions 或自建服务器上使用
-
多用户功能,可为多人提醒
-
支持多种消息推送接口,可将上报结果仅发送给一人
-
实现了自动补报功能,提醒时自动检测是否需要补报
-
自动获取最新一次填报信息进行提醒,如需修改地址等信息,当天手动重新填报一次,程序下次提醒将自动采用
-
提醒时可根据实际情况,自动生成一些原本需要截屏的图片
-
自动阅读所有消息,可通过消息推送接口推送必读消息
-
支持
卷王抢排名模式(需使用自建服务器,不支持在 GitHub Actions 上使用):
点击本项目右上角的Star
和Fork
Fork 项目后,在自己 Fork 后的项目的页面依次点击 Settings
-Secrets
-Actions
-New repository secret
如图所示, Name
处输入 USERS
, Value
处输入学号和密码,格式为 学号1,密码1;学号2,密码2...
,即学号与密码用英文逗号
分隔开,多个用户之间用英文分号
分隔开,最后结尾不用加分号,只有一个用户也不用加
输入完毕后,点击Add secret
添加
需要在第三方消息推送接口申请 key 后,采用同样的方法配置该 Secret。配置后可在每次 GitHub Actions 执行提醒后,将提醒结果发送给自己。
Secret 的 Name
设置为 SEND
, Value
格式为 send_api,send_key
, send_api
代表消息推送接口代号, send_key
代表消息推送接口密钥。例如: 2,5e58d2264821c69ebcd46c448e7f5fe6
, 3,123456789:mbpSwrgRCr1iLt4MZRYqq0mlko-MGXMcg@987456321
等。
对于支持的消息推送接口及其代号查询,可参考 提醒结果消息推送介绍。
如下图所示
此时 Actions 开启成功,为确保能够提醒成功,程序将会在 北京时间 (UTC+8) 每天 6:30 及 12:30 各执行一次,如需修改提醒时间,可在 .github/workflows/report.yml
下修改
可以点击 Run workflow
测试提醒一下,确认可以成功提醒
可以选择安装 GitHub Apps 中的 Pull App ,保持你的 Fork 始终最新。
安装时默认会应用到所有项目,建议改为手动按需选择需要应用的项目。注意该 App 会强制覆盖你对 Fork 项目的操作,如果你有改动(例如修改了 .github/workflows/report.yml
),请注意备份
若不安装,当本项目更新后,你 Fork 的项目并不会自动更新,需要手动 Fetch and merge
一下,如下图所示,在你 Fork 后的项目页执行该操作
你可以 Watch
本项目以确保项目更新时能收到消息
git clone https://github.com/panghaibin/shuasr.git
cd shuasr
# 更新
git pull
pip3 install -r requirements.txt
# 添加用户
# 如需修改已添加用户的密码,再次执行并输入相同学号即可
python3 main.py add
# 设置消息推送API
python3 main.py send
推送API设置可参考 提醒结果消息推送介绍
修改目录下config.bak.yaml
文件名为config.yaml
,按照文件所写格式修改填写。
添加设置完毕用户及消息发送API后,建议先执行以下命令测试
python3 -u main.py test
该命令会将所有用户立即上报一次,如控制台无异常输出且能收到消息推送,说明设置无误。若出现异常报错有可能是健康之路已改版,等待更新或向我提PR。
运行以下命令,程序将自行检查是否在上报时间内,并自动进行上报
python3 -u main.py
启动程序后若关闭控制台程序会自动退出,因此需要进程守护。进程守护的方式有多种,如使用nohup
命令:
nohup /usr/bin/python3 -u /root/shuasr/main.py > /root/shuasr/output.log 2>&1 &
另外也可以用screen
,下面以screen
为例介绍用法。
安装screen
(部分系统已安装)
# CentOS
yum install screen
# Debian/Ubuntu
apt-get install screen
然后创建一个名为shu
的screen会话
screen -L -S shu
默认情况下会生成一screenlog.0
文件,控制台输出将会保存到该文件中,如有错误信息方便查看。
执行python3 main.py
,按下Ctrl
+a
,然后按d
,离开当前screen会话。
如需恢复,执行
screen -r shu
即可
目前支持以下消息推送服务:
接口代号 | 名称 | 官网 |
---|---|---|
1 | Server酱 | https://sct.ftqq.com/ |
3 | Telegram Bot | 需自行创建Bot ,查看创建方法 |
4 | PushDeer(开发中,未完善) | https://github.com/easychen/pushdeer |
5 | 推送加PushPlus | https://www.pushplus.plus/ |
请前往任意官网注册得到key
后即可在本项目中使用,在 GitHub Actions 中使用时注意接口代号正确设置。
注意 Telegram Bot 的 Key 的格式为 BOT_TOKEN@CHAT_ID
,例如 123456789:mbpSwrgRCr1iLt4MZRYqq0mlko-MGXMcg@987456321
该模式仅支持在自建服务器上使用。功能默认开启,每天凌晨 1 点前会向系统不断提交当日的日报信息直到提交成功,以提升排名。如需关闭,修改config.yaml
中的grab_mode
值为False
即可。
关闭后每天7:30提醒一次。
本项目在 2020 年初用 PHP 编写 (为了抢排名第一) ,返校后为了帮室友上报把源代码改得面目全非 (传说中的屎山)(又不是不能用) 。寒假离校后受下列开源项目启发,用 Python3 对 PHP 编写的源代码进行了重写重构。
本项目仅供学习交流之用,请勿用于其它用途。请遵守当地防疫守则。
Take care of yourself, and be well!