工学云自动打卡
前言
1、请务必认真阅读此文档后继续!
2、本项目开源&免费,所有开发均仅限于学习交流,禁止用于任何商业用途。
3、本项目开源地址为:https://github.com/XuanRanDev/Auto-GongXueYun
4、如基于或参考此项目进行二次开发,请注明原作者并使用GPL2.0许可证开源
目录
使用门槛
帮我点一下源码地址右上角的星星,另外你电脑最好有魔法,如果你没有魔法Github的网站是经常打不开的(如果你能当我没说
我使用的魔法是付费的,新用户注册送1G流量(够用了)
2023年2月28日补充:
我个人时间也是有限的,教程已经写的很详细了,遇到问题请自行解决,如果需要我协助解决,仅限赞助过的协助(不在于金额多少,只是想避免那些只想白嫖,甚至前脚加我解决问题,后脚就在朋友圈发:“代打卡,价格美丽”的),赞助时请在备注里备注好你的微信昵称或微信号,然后向XuanRan_Dev这个微信号发送好友请求。
2023年6月18日补充:
此处已经说的很明白了,如果你直接发送好友申请是不会通过的,别白费力气了。
使用方法
Github Actions
推荐指数:⭐⭐⭐⭐⭐
优点:适合没有自己服务器的人使用。
缺点:
1、每日打卡时间无法保证十分准时,拥有10-30分钟的误差。
2、Action在某些情况下可能会连接工学云服务器超时造成打卡失败(已加入每日打卡检查,当未打卡时会补签)。
1.点击Star后Fork本仓库🤪
2.准备配置文件🤔
如果想同时打卡多个用户,请再添加一个数据体就好了(如果还不理解点我)
注意:配置文件模板下方有配置含义,请务必参照配置含义填写
1 | [ |
其配置含义如下:
参数名称 | 含义 |
---|---|
enable | 是否启用该用户的打卡(true或false) |
phone | 手机号 |
password | 密码 |
keepLogin | 是否启用保持登录,启用后程序每次打卡将不再重新登录,避免挤掉手机工学云的登录,启用后请通过抓包工学云获取你的token、userId、planId然后填写在下方 |
token | 如果keepLogin启用,则在此填写你的token |
userId | 如果keepLogin启用,则在此填写你的userId |
planId | 如果keepLogin启用,则在此填写你的planId |
randomLocation | 是否启用打卡位置浮动,启用后每次打卡会在原有位置基础上进行位置浮动 |
user-agent | 是否自定义UA,如果不需要自定义填null(字符串形式),否则填写你的UA(可以点我随便选一个) |
signCheck | 每日签到检查,某些情况下action可能没网络造成打卡失败,启用此选项后,将在每日11点以及23点检查今日的打卡状态,如未打卡则补卡 |
country | 国家 |
province | 省份 |
city | 城市 |
area | 区/县 |
desc | 打卡备注 |
type | android 或 ios |
address | 详细地址,如果你打卡的时候中间带的有·这个符号你也就手动加上,这里填什么,打卡后工学云就会显示你填的内容(工学云默认·这个符号左右都会有一个空格) |
longitude | 打卡位置精度,通过坐标拾取来完成(仅需精确到小数点后6位),传送门 |
latitude | 打卡位置纬度,通过坐标拾取来完成(仅需精确到小数点后6位),传送门 |
pushKey | 打卡结果微信推送,微信推送使用的是pushPlus,请到官网绑定微信(传送门),然后在发送消息里面把你的token复制出来粘贴到pushKey这项 |
3.配置Secret
填写完成后请复制如上配置文件,然后打开仓库的Settings->Secrets->Actions->New repository secret
Name填USERS
Secret填改好的配置文件
4.运行测试
至此,自动打卡将会在每天7点和18点左右自动运行打卡。😉
使用自己的服务器部署
推荐指数:⭐⭐
优点:运行稳定、准时。
缺点:有一定的上手成本。
具体教程:
1、下载本仓库源码到你服务器。
2、在服务器中安装好Python环境。
3、运行命令来下载依赖。
1 | pip install pytz |
4、在百度搜索:你的操作系统+ 定时任务,查看如何创建定时任务。
5、创建一个user.json配置文件在项目目录,并将配置文件放入其中
6、运行python main.py测试
启用保持登录
启用保持登录指的是打卡程序在启用保持登录开启后不再使用账号密码登录打卡,而是使用Token方式。
启用保持登录需要会抓包,而且要抓https的包,如果你手机没Root就别想了
1、下载小黄鸟,抓包软件选择工学云
2、打开工学云
3、在抓包软件里找到https://api.moguding.net/attendence/clock/v1/listSynchro
这个请求
4、找到Token以及userId、planId
启用每日打卡检查
因为Github Action某些情况下可能会无法连接工学云服务器造成打卡+推送失败问题,为此推出每日打卡检查,启用后,每日11点(有1次检查)以及23点(也有1次检查)将会对今日打卡情况进行分析,如存在漏签则自动补签。
如需开启,请在配置文件中的signCheck设置为true
启用打卡位置浮动
启用打卡位置浮动后,每次打卡系统会在原有经纬度中删掉最后一位数字,并随机加入一位数字,使每次打卡经纬度不同。
修改自动打卡时间🎯
修改自动打卡时间需要了解Cron表达式的使用,且需注意不要将打卡时间设置为11点以及23点,此时间段中会运行每日打卡检查,自动打卡在此时间段内不生效。😴
1.编辑sign.yml文件,找到图中我圈出的部分2.编辑表达式
GitHub的cron表达式不支持精准到秒,所以从最左边开始,分别为:
分钟 小时 日 月份 星期
而且Github的服务器时间会比我们晚八个小时,所以在你需要打卡的时间-8配置到里面就行了
例如说在上午十点打上班卡就是:
1 | - cron: "00 02 * * *" |
晚上九点打下班卡:
1 | - cron: "00 13 * * *" |
赞助支持
如果此仓库帮助了你学到了新知识,你可以帮我买杯可乐。
常见问题
打卡失败
如果遇到action运行失败或者打卡失败,99%都是Github无法连接工学云服务器,属于玄学问题,猜测是服务器IP被拉黑,这点没很好的处理办法,只能重试,如打卡十分重要可适当增加每日打卡检查次数。
增加打卡检查运行次数
从1.0版本开始,每日打卡检查从每日运行4次调整为每日2次并默认关闭,具体原因请查看更新日志,如需要调整每日打卡检查运行次数,可先学习修改自动打卡这一小节的基础知识后再来。
默认情况下的sign.yml时间配置如下:
1 | - cron: "00 23 * * *" # 上班卡 |
打卡检查仅限在每日11点以及23点运行,其他时间运行会造成多打卡情况出现,所以如果你需要增加自动打卡的次数就复制第二行或第四行,然后修改具体的时间即可,但请注意分钟必须限制在0-25之间(因action运行20分钟左右的延时,防止action启动后已过11/23点),例如说我想要增加两次打卡检查,则可这样写:
1 | - cron: "00 23 * * *" # 上班卡 |
上班及下班卡判断逻辑
每日12点以前运行全部为上班,12点及以后默认为下班卡。
暂停自动打卡
在Actions-Sign-右边三个点disable workflow
修改配置文件
Settings-Secrets-Actions-下面Repository secrets有个USERS,点击小箭头编辑,里面没内容是正常的,配置文件一旦保存将无法再被看到。
保持最新代码
随着工学云的更新,自动打卡可能会在某个版本后失效,开发者会及时更新代码,但你Fork的代码并无法保证与主分支(我的代码)实时同步,此时需要手动同步代码,需要注意的是Github不会有任何通知告诉你代码过时或有新版发布,为此,你可以扫描下方二维码关注我的公众号,当有重要更新或调整时会在公众号发文提醒。
手动同步代码方法:
公众号:
开发&维护不易,如果此仓库对你的学习有帮助,你可以给我买瓶可乐来支持我维护下去(点我支持),Thanks.
😀😀😀😀😀