这是一个厦门大学每日健康打卡系统的自动汇报程序,它可以通过smtp邮件服务通知你打卡的结果。程序支持每日定时打卡(默认在早上六点到八点随机选择一个时间开始打卡)。 你可以让本网站每天给你自动打卡,或者选择在自己的linux或windows设备上打卡。
如果你没有自己的服务器,我们推荐使用Github Action来打卡。
-
注册一个
github
账户。 -
点击右上角的
Starred
按钮,收藏本程序
- 再点击右上角的
Fork
按钮
这会克隆一个你自己的打卡程序,并跳转到你自己的仓库。
- 点击
Settings
:
- 选择
Secret
下的action
- 点击
New repository secret
,添加你的个人登录信息。
- 填入以下内容。
注意,Name
一定要填入SETTING
Value
的内容可以从这里复制,记得把配置改成你自己的学号,密码,以及邮箱地址和密码。reporter_name是邮件发送人的名字,可改可不改。
{
"mail": {
"address": "[email protected]",
"reporter_name": "HAL-9000",
"smtp_password": "123456"
},
"xmu": {
"ID": "21620207701111",
"password": "123456"
}
}
注意,smtp_password
是你的邮箱授权码。
我们推荐使用QQ邮箱,因为它会在微信/QQ中弹出通知,符合国情。当然你也可以使用你自己喜欢的邮箱。这是QQ邮箱设置SMTP服务的教程 。注意,你获取的SMTP授权码就是需要填入的smtp_password
。
如果你不需要程序发送邮件提醒你打卡结果,则可以删掉邮箱有关的配置,如下所示:
{
"xmu": {
"ID": "23320779999999",
"password": "123456"
}
}
- 点击
Add secret
保存配置。
- 激活定时打卡
回到主页,点击左上角的Actions
:
点击绿色按钮激活脚本功能
点击Enbale workflow
激活定时打卡功能
现在,程序会自动在每天上午六点钟到八点钟,随机选择一个时间开始打卡。
- 除了定时打卡,你也可以用这个网站手动打卡。我们建议您现在手动打一次卡,验证一下配置是否正确。
点击绿色的Run workflow
按钮来触发手动打卡。
刷新页面,可以看到打卡正在进行中:
变为绿色则程序运行完毕(运行完毕不代表运行成功)。
点击查看详情,可确认是否打卡成功:
只有程序告诉你:report seccueed
!才算是打卡成功!
如果打卡失败,并显示:
则说明你的配置有误。请更新你的学号和密码。
- 打卡成功后,如果你有设置邮件地址,那么程序会向你的邮箱发送邮件。
以下是邮件的示例(含成功和失败两种情况)
- 如果要修改定时打卡时间,请打开文件: .github/workflows/main.yml
这里的 0 22 * * *
代表在UTC+0的时区的22点打卡。由于中国是UTC+8时区,因此默认是早上六点开始执行任务。
如果想要改成早上八点开始打卡,可以将0 22 * * *
改成 0 0 * * *
- 如果要修改随机打卡的时间段,请打开文件: bin/github_action/sleep.sh
当任务被定时触发(而不是手动触发)时,这个脚本会随机睡眠1-7200秒,如果要修改随机打卡的时段,只需要将7200修改为合适的值。
- 更新程序
如果程序有更新,你可以点此升级
请从github的release界面下载程序。
下载地址
记得选择合适的系统版本。目前我们只提供x86-windows
/x64-windows
/x64-linux
这三个版本。
解压文件,在report_setting.json
中编辑程序的设置。如果程序找不到它,会自动生成一个默认的配置文件。
有些人会将在windows上将其设置为开机自启动,也有些人会在linux服务器上设置每日的定时任务来实现真正的全自动打卡。这取决于你的设备情况。
你不应该使用这个程序撒谎。本程序汇报的内容是可以通过setting.json
中的form_data
一项来修改的,本程序只不过默认你身体健康而已。如果你发烧或者移动到其他城市,请及时手动更新表单。
github上的个人信息会被加密存储。如果你选择用自己的设备打卡,则你的个人信息将会明文保存在你的本地计算机,请小心照看它防止泄露。
我们使用HTTPS和SSL证书以及额外的AES-128算法来加密传输你的信息,这和官方网站使用的加密方法是一致的。我们不会将你的个人信息发送给别人,你可以阅读源代码来确认这一点。
以下是配置文件中高级选项的解释。
除了你的学号和xmu登录密码,其他都是可选项。
{
"form_data": "blablaaaaaaaaa" , //每次打卡时post的表单信息,如果你生病了记得改
"mail": {
"address": "[email protected]", //填入你的邮箱地址,如果不想发送通知邮件,填入一个空字符串("")即可。
"reporter_name": "HAL-9000", //汇报机器人的名字,会在通知邮件中显示。
"smtp_password": "123456" //你的邮箱的smtp服务的密码
},
"report_retry": {
"counts": 20, //打卡失败时重试的次数
"duration": 10 //打卡失败时每次重试间隔的秒数
},
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", //浏览器信息
//学生个人信息
"xmu": {
"ID": "23320779999999", //你的学号
"password": "123456" //你的密码
}
}
我们使用cmake来组织工程,使用vcpkg包管理器来安装第三方库,你的c++编译器需要支持C++17标准。
以下是编译的步骤:
- 装C++编译环境(Windows上安装Visual Studio,Linux上安装gcc/clang)
- 安装vcpkg
- 用vcpkg安装第三方库
- 使用IDE,或者直接使用cmake编译本项目
许多IDE都支持CMAKE工程,如Visual Studio,CLION,安装好cmake插件的Visual Studio Code。
你需要在vcpkg中安装这些库: