技术栈 | Midway.js | Nest.js |
---|---|---|
链接 | hnie-auto-sign-midwayjs | hnie-auto-sign-nestjs |
备注 | 仅支持日常打卡 | 支持日常打卡以及晚归打卡 |
目录:
可以配合 阿里云效 或者 coding,只要是跑在国内服务器都可以
流水线:最大并发任务数 3,运行时长 1800 分钟/月。
更多信息请查阅官网
推荐使用方式二
如果方式二的代码拉取不下来的话就只能换成方式一了,如下图所示是方式二失败的情况:
- 先注册阿里云账号
- 然后进入云效得devops
- 进入
代码管理
。在右上角找到导入代码库
- 创建流水线
- 配置流水线
- 在右侧弹出面板中,将任务名修改为
签到打卡
- 点击右侧面板中下侧的
添加步骤
,选择构建->Node.js构建
- 现在你的界面应该是这样的
版本选择方式
修改为输入指定版本
请填写 Node 版本
修改为16
构建命令
填写为如下
npm ci
npm run build
npm run start
- 配置邮件通知
- 配置定时任务
- 修改流水线名称(可选)
- 保存流水线,点击最右上角的
仅保存
按钮 - 配置签到账号信息
- 运行流水线进行测试
- 至此操作已经全部完成,第二天会按照预设的时间进行打卡,运行结果会进行邮件通知
- 邮件通知大概长这样
- 前面的步骤也是和步骤一相同,只不过这里不用拉仓库了,每次构建都会同步github仓库。
- 先注册阿里云账号,然后进入云效界面
- 安装上面图示进入
流水线 Flow
- 进入之后点击右上角的蓝色按钮
新建流水线
请选择流水线模板
这里选择最底部的其他 · 空模板
,然后点击创建- 打开时候会自动在右侧弹出一个
代码源
窗口,这里选择通用Git
代码仓库
填写https://github.com/james-curtis/hnie-auto-sign-midwayjs.git
默认分支
填写main
- 点击
服务连接
的添加服务连接
- 在弹出窗口中,点击
服务授权/证书
右侧的新建
按钮 - 然后
新建服务连接
窗口中的使用范围
修改为私密:仅自己可见
- 此时你的界面应该是这样,
- 点击
添加
按钮 - 此时你的界面应该是这样,
- 中间这里的步骤就和方式一中的第5-9步一样
- 完成方式一的第5步至第9步之后,再按照1. 配置写在.env中不会泄露吗中的说明配置环境变量即可
签到JSON数据的Schema请参阅:schema.json
签到数据示例:
[
// 每一个对象就是一个签到账号
{
"account": {
// 账号,这里的账号密码是http://xggl.hnie.edu.cn/这个网站的
"account": "demo",
// 密码,默认是Hnie@身份证后六位
"password": "Hnie@demo"
},
"signFormData": {
// 签到所在地(地图api定位结果)
"address": "湖南省郴州市北湖区五岭大道9号",
// 签到所在地经纬度
"position": "113.014999,25.7706",
// 签到地址(精确的县级)
"signAddress": "湖南省郴州市",
// 省会邮编
"provinceZipCode": "430000",
// 市中心邮编
"cityZipCode": "431000",
// 县中心邮编
"countyZipCode": "431081",
// 现居地详细地址
"habitationDetailDesc": "湖南省郴州资兴市鲤鱼江KFC",
// 常住地详细地址
"usualResidenceDetailDesc": "湖南省郴州资兴市鲤鱼江KFC",
// 手机号
"phone": "15971115555"
}
},
{
"account": {
"account": "demo",
"password": "Hnie@demo"
},
"signFormData": {
"address": "湖南省郴州市北湖区五岭大道9号",
"position": "113.014999,25.7706",
"signAddress": "湖南省郴州市",
"provinceZipCode": "430000",
"cityZipCode": "431000",
"countyZipCode": "431081",
"habitationDetailDesc": "湖南省郴州资兴市鲤鱼江KFC",
"usualResidenceDetailDesc": "湖南省郴州资兴市鲤鱼江KFC",
"phone": "15971115555"
}
}
]
请使用 Json Schema Validator,左边填写schema.json中的内容,右边填写你的配置
海外ip好像无法签到,打开页面会显示 502
返回数据长这样
�***31m data: '<html>\r\n' +�***39m
�***31m '<head><title>502 Bad Gateway</title></head>\r\n' +�***39m
�***31m '<body bgcolor="white">\r\n' +�***39m
�***31m '<center><h1>Notice:502 Bad Gateway</h1></center>\r\n' +�***39m
�***31m '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n' +�***39m
�***31m '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n' +�***39m
�***31m '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n' +�***39m
�***31m '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n' +�***39m
�***31m '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n' +�***39m
�***31m '<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n'�***39m
如果你开放了权限给别人看了话是有可能会泄露的。
因此我也提供了第二种配置的方式:
将配置信息写进环境变量中,效果如下
只可惜的是云效这里不能直接写一个JSON进去,需要base64编码一下才能写入进去。
步骤如下:
- 随便找一个在线base64的网站,例如:https://base64.us/
- 把你的配置输入进去,如下图所示
- 然后复制编码之后的值
- 回到云效,点开之前创建的流水线,点击顶部的
变量和缓存
,在字符变量
右侧点击新建变量
- 然后按照下图示例进行填写,变量名是
SIGN_CONFIG_BASE64
- 添加之后再点击右上角的
仅保存
即可- 然后你退出重进,会发现这个变量只能被替换,不能被读取了
提示:环境变量的优先级是最高的。
如果同时设置
.env
.env.local
环境变量
其中的优先级是:
环境变量
>.env.local
>.env