Auto_Attendance实现莞工学工系统勤工俭学岗位自动打卡的功能,适用于各学生助理、助理班主任等勤工俭学职位的日常考勤打卡。用以实现自动考勤,避免忘记打卡和打了卡但忘记签退等因“忘记”而引发的情况。
由于定时任务太多,Github Actions会创建一个执行队列,因此经常会出现定时任务不在指定时间运行的情况,往往会有几分钟到几十分钟不等的延迟,尤其是在UTC16:00(即北京时间0:00)前后。此外,GitHub Actions本身的保护机制使得单个程序最大运行时间是360分钟。因此,为保证其稳定性,程序定时每天7:30和13:30启动,然后在python程序中设置简单的循环进行监控,在需要签到和签退的时刻运行签到和签退操作。除了可以设置个人的考勤时间外,还能设置是否在休息日(包括法定节假日)是否考勤。
需要添加的repository secret | 含义 | 例 |
---|---|---|
USERNAME | DGUT中央认证系统账号 | 20184141xxxx |
PASSWORD | 密码 | 123456 |
添加USERNAME
添加PASSWORD
添加成功
设置考勤时间不需要编辑python代码,仅需要编辑schedule.json文件
在schedule.json文件中,"0"-"6"表示星期日-星期六(每周的第一天是星期日),其映射的列表表示考勤时间
考勤时间列表的每一个元素亦是一个列表,代表一次考勤的开始时间和结束时间,下面这个例子能让你更加清楚如何制定自己的考勤时间表Tips: 不要更改schedule.json的文件结构;时间要严格按照"时:分"的格式,不要精确到秒。否则将造成程序无法正常运行
schedule.json
{
"0": [
],
"1": [
["8:30", "10:10"],
["14:30", "17:30"]
],
"2": [
["8:30", "12:00"]
],
"3": [
["14:30", "17:30"]
],
"4": [
["8:30", "10:10"]
],
"5": [
["14:30", "17:00"]
],
"6": [
]
}
上面这段json代码的意思是:
星期 | 考勤时间 |
---|---|
星期日 | - |
星期一 | 8:30-10:10 14:30-17:30 |
星期二 | 8:30-12:00 |
星期三 | 14:30-17:30 |
星期四 | 8:30-10:10 |
星期五 | 14:30-17:30 |
星期六 | - |
按照自己的需求设置即可,下面我们来对schedule.json进行在线编辑
点击schedule.json
编辑schedule.json
提交修改,成功设置考勤时间
config.ini一般不需要进行配置。该文件下有两个参数:
如果有多个职位,需要指定具体某一个职位;或者想要提高运行效率,可以配置一下workAssignmentId
以下是配置方法。若无需配置,跳到下一节
首先登录学工系统,来到考勤页面,并按F12打开开发者工具
搜索workAssignmentId
双击select标签,找到workAssignmentId
假设网安学院学生工作助理的workAssignmentId=9200。那么,config.ini文件应该这么写
[attendance]
holiday_attendance = False
workAssignmentId = 9200
文件在线配置的方法可参考2.3. 设置考勤时间
点击Actions,启动工作流
启动成功!
需要配置Server酱获取对应的key,再将key配置到Secrets,详细配置教程戳这里
注:因为自动考勤不支持多账号,因为在配置key时,只需要设置Secrets的变量名为SERVER_KEY,值为-K <key>
即可,例如-K fgasd12
Auto_Attendance
│ attendance.py
│ config.ini
│ log.yaml
│ README.md
│ requirements.txt
│ schedule.json
│ special.json
│
└─.github
└─workflows
main.yml
Github Actions经常性不会准时开启定时任务,通常延迟几分钟到几十分钟才运行,因此程序设置了7:30和13:30的定时任务(因为GitHub Actions限制每个程序只能运行6个小时,因此分两次运行),在程序上设置时间监控进行考勤
账号和密码是使用Github Actions Secrets保存,安全性由Github及其安全算法来保障。不能说万无一失,只能说安全性还是有保障的。如果你有一台一直在运行的电脑,直接本地运行会更具安全性,但相应地也失去便捷性
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。