@分支作者:Gol3vka
@原项目作者:XAKK
@原项目地址:https://github.com/XAKK/SEU-health-reporting-helper.git
✋ 稍等!
如果您只有在 Windows 下运行的需求,且不想花时间在环境配置上,在这里为您准备了 Windows 下一键部署的版本噢!
这是一个每日健康上报自动化脚本,在正确配置之后,可以实现每日自动打卡,支持同时为多位用户上报(分支功能),并通过邮件告知打卡结果。
请平日自觉打卡,建议将自动打卡脚本作为兜底。默认上报体温为 36.2℃ 至 36.7℃ 。
祝各位用户身体健康。:wink:
💬 在部署、使用过程中遇到问题可以在 GitHub 页面提 Issues 或通过邮件发送您的问题。
此程序不会收集、上传在运行中所使用到的任何个人信息另作它用,包括邮箱地址、登录密码等。这些个人信息仅由用户写入本地配置文件中,仅用于健康上报页面和邮箱的登录。
目录下的 config_demo.yml
是演示配置文件,可以在此基础上修改,并将文件重命名为 config.yml
。
或直接在当前目录下新建 config.yml
, 按照以下格式正确写入内容,相关字段修改为自己的一卡通号、密码、邮箱等。
#################### 必填 ###################
## chromedriver 可执行文件路径
# 仅为示例,请根据自己设备上的路径进行填写。Windows下注意要用双反斜杠。
chrome_driver_path: "C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe"
## 一卡通号(将 22000000x 替换为您的一卡通号)
# 如需要添加打卡账号,请按照此格式(- "xxx")向下添加。
# 如只有一个用户,请删除多余的行,下同。【注意保持几个列表项数一致,且彼此匹配】
user_id:
- "220000000"
- "220000001"
## 统一身份认证密码(将 ****** 替换为统一身份认证密码)
password:
- "******"
- "******"
#################### 可选 ####################
## 是否需要发送邮件通知打卡结果(yes/no)
notification:
- "no"
- "no"
## 只有尝试打卡失败后,才发送邮件(yes/no)
notify_failure_only:
- "no"
- "no"
## 发送打卡状态的邮箱地址(将 USER_NAME@seu.edu.cn 替换为您的邮箱地址)
from_addr: "USER_NAME@seu.edu.cn"
# 发送打卡状态的邮箱密码(将 ****** 替换为您的邮箱登录密码)
email_password: "******"
## 发送打卡状态的邮箱的 SMTP 服务器地址
#一般为 smtp.<邮箱后缀> 若不清楚可在网上查询所用邮箱的SMTP服务器地址
smtp_server: "smtp.seu.edu.cn"
## 发送打卡状态的邮箱的 smtp 服务器端口号
# 一般为25,为保证发送成功率,建议使用支持SSL协议的端口,具体端口号可在网上查询
port: 25
## 接收打卡状态的邮箱地址
to_addr:
- "name1@example.com"
- "name2@example.com"
下面是部署在不同平台上的操作,选择适合自己机器的平台,转到该部分,按步骤操作即可。
推荐程度:⭐️⭐️⭐️⭐️⭐️
cd SEU-Daily-Health-Reporting-Helper
docker build -t dhrh:0.1
chmod +x run_docker.sh
./run_docker.sh
新建定时任务
crontab -e
新增下面的内容,之后保存退出,将在每天早上 8 点打卡。
* 8 * * * /.../SEU-Daily-Health-Reporting-Helper/run_docker.sh
-
需要将
/.../SEU-Daily-Health-Reporting-Helper
路径替换为实际项目路径。 -
自动运行时间也可根据自己的需求更改,即修改前5个字段,语法格式如下:
.---------------- minute (0 - 59) | .------------- hour (0 - 23) | | .---------- day of month (1 - 31) | | | .------- month (1 - 12) OR jan,feb,mar,apr ... | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat | | | | | * * * * *
推荐程度:⭐️⭐️⭐️
在运行前,请确保您的系统上装有 Google Chrome,安装方法略。
将自动根据 Chrome 版本,安装对应的 ChromeDriver 至 /usr/bin
。
./install_chromedriver.sh
python3 -m venv dhrh-venv
source dhrh-venv/bin/activate
pip install -r requirements.txt
chmod +x run.sh
./run.sh
新建定时任务
crontab -e
新增下面的内容,之后保存退出,将在每天早上 8 点打卡。
SHELL=/bin/bash
PATH=/usr/local/bin/:/usr/bin:/usr/sbin
* 8 * * * DISPLAY=:1 /.../SEU-Daily-Health-Reporting-Helper/run.sh >> /.../SEU-Daily-Health-Reporting-Helper/dailyReport.log 2>&1
-
需要将
/.../SEU-Daily-Health-Reporting-Helper
路径替换为实际项目路径。 -
自动运行时间也可根据自己的需求更改,即修改前5个字段,语法格式如下:
.---------------- minute (0 - 59) | .------------- hour (0 - 23) | | .---------- day of month (1 - 31) | | | .------- month (1 - 12) OR jan,feb,mar,apr ... | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat | | | | | * * * * *
推荐程度:⭐️⭐️⭐️
(如果您不想花时间在环境配置上,在这里为您准备了 Windows 下一键部署的版本噢!🚪 传送门)
在命令行中输入 python
,若有版本信息显示,则已有 Python 解释器,跳过。若显示为未知命令,则需要安装 Python 解释器。
最简单的方式是在 Microsoft Store 中搜索“Python”,点击安装。您也可以在网上查找其他方式。
下载与本机 Chrome 浏览器版本相对应的 ChromeDriver,并移动至 SEU-Daily-Health-Reporting-Helper 目录下。
您可能需要 ChromeDriver 镜像站。后期升级 Chrome 需要替换对应的 ChromeDriver。
python3 -m venv dhrh-venv
.\dhrh-venv\Scripts\activate
pip install -r requirements.txt
run.bat
借助一台在预定义时间处于运行状态的 Windows 机器,以及 Windows 任务计划程序,可以无人干预的情况下每日自动打卡。
打开任务计划程序:按下 Win
+ R
,输入 taskschd.msc
常规:
- 输入名称
- 将安全选项中的账户改为具有相关权限的账户
- 选择【不管用户是否登录都要运行】
- 勾选【使用最高权限运行】
触发器:
- 点击【新建】
- 将任务设置为【每天】执行
- 配置随机延迟时间(可选)
- 也可以根据自身需求定义多个触发器
操作:
- 点击【新建】
- 选择启动程序(项目目录下的
run.bat
脚本)
完成上面配置后,便新建了一个计划任务。
2022.03.05以及之前部分来自原项目,之后部分为分支更新内容
2022.10.30:
- 开始运行前检查网络连接状况,若无连接则暂停,等待用户确认后再次运行。
2022.10.17:
- 新增 Windows 一键部署版本,将以下操作通过脚本实现:创建虚拟环境、安装依赖包、安装与浏览器版本相对应的 ChromeDriver。
2022.09.29:
- 移除旧版配置文件
personal_information.py
; - 修改邮件发送部分代码。
2022.09.26:
- 支持在一个脚本中为多用户打卡。在需要为多个用户执行操作时,不需要再将文件复制多份以及配置多个定时任务;
- 修改配置文件部分字段为列表类型。
2022.03.05:
- 正常体温数据随机化,取值范围为 [36.2, 36.7];
- 配置文件格式切换至 yaml,老式配置文件(personal_information.py)支持暂时保留;
- 增加对 Docker 的支持。
2022.03.04:
- 增加对 Linux 的支持。
2021.11.16:
- 增加配置选项:是否需要通过邮件发送打卡结果;
- 增加配置选项:是否只有在打卡失败时进行通知。