直接原因
- 昨天下午我不想去上课,签到也没折腾成功,一怒之下自己部署了这套程序。
根本原因:大一的时候用软件来签到,但是后面勾八(陈思)应该是知道了,用了二维码签到,但是那会技术有限,动态二维码的解码没有实现。
喵佬的开源脚本
于是我在github搜索了相关的程序,找到了喵大佬的脚本。
后端程序:https://github.com/miaochenxi/chaoxing-sign-cli
前端ui界面:https://github.com/miaochenxi/chaoxing-sign-ui
这套程序是基于 Nodejs 实现的一个签到命令行工具。
功能: 普通签到、拍照签到、手势签到、位置签到、签到码签到、二维码签到(10秒变换不影响),多用户凭据储存(多开)。
二维码签到!
在运行之前需要做些准备,请找一位挚友,发来拍的二维码的照片(无所谓几秒一变),用微信扫一扫二维码,或用其他工具识别,得到类似下面的结果:
复制其中的 enc
参数,注意不要复制多余内容和空格,例如 1D0A628CK317F44CCC378M5KD92,复制该值,询问时填入。
位置签到
根据运行时的提示输入经纬度和详细地址,经纬度可在这里自己获取 百度拾取坐标系统,点击某位置,经纬度将出现在网页右上方,复制该值,询问时填入。详细地址样例:中国河南省郑州市中原区沟赵乡红松路郑州轻工业大学(科学校区),该地址将显示在教师端。
拍照签到
需要事先准备一张用来提交的照片。浏览器访问超星云盘:https://pan-yz.chaoxing.com ,在根目录上传一张你准备的照片,命名为 0.jpg
或 0.png
。若使用 UI 仓库的项目(查看高级
),则可直接选择图片提交。
普通签到&手势签到&签到码签到
没有任何需要准备的,直接运行即可。
环境 💻
可在任意运行 NodeJS > v8.5.4 的平台签到,Windows、MacOS、Linux …
安卓手机上可以用 Termux 来运行NodeJS程序,查看Termux教程 。
部署过程
- 这里我就演示在服务器端部署,linux系统为centos7.9、宝塔7.9企业版
- 若你用其他终端或者heroku、云开发部署也是可以的,如果你愿意折腾的话。
- 部署在3h5g的美国vps服务器里,先将项目clone到vps里(前端和后端都要clone)
后端部署不难,首先你需要:
- 将仓库克隆到本地:
git clone https://github.com/miaochenxi/chaoxing-sign-cli.git
2.进入项目文件夹
cd chaoxing-sign-cli
3.执行以下命令即可
npm start
这样的话你就是在linux端部署完了后端(当然这样也能签到,但是还不够,我们需要一个可视化面板来提供7*24h的服务,这里也感谢作者已经做好了ui界面)
(前端UI)程序用宝塔网站nodejs项目部署
1、将项目克隆到本地
git clone https://github.com/miaochenxi/chaoxing-sign-ui.git
2、进入项目文件夹
cd chaoxing-sign-ui
3、分别运行以下命令
yarn install
安装依赖,如果时间太长请尝试挂代理或使用淘宝源。
yarn start
启动开发服务器。不要忘记把接口服务(另一个仓库)也运行起来。
yarn build
构建项目,输出到 build 文件夹。
宝塔具体操作如下图:
如果你不想折腾,那宝塔面板就跟我填一样的就行。
PS:绑定域名先别开启ssl证书,后续也不需要开启,因为作者的前后端的接口没有完全用https,所以会造成报错,当然你技术过硬的话也可以完全靠自己解决这个问题(大佬勿喷)。
src/config/api.js :该文件中配置 baseUrl 变量为接口地址,默认 http://localhost:5000 。若接口部署在服务器,不要忘记将接口地址改为服务器IP或绑定的域名。
这里的我的域名没开启https,因为后端接口暂不支持https,于是baseUrl可以直接填入:http://你的域名:5000
注意
本程序仅为交流学习使用,借助学习通的平台,通过本项目加深http请求、网络通信、接口编写、交互设计等方面知识的理解,请勿用作商业以及其他用途。
鸣谢作者
非常感谢喵佬的开源脚本,喵佬的博客已经收录在友人帐的大佬分类里。
如若后续喵佬没空维护该项目了,本人会在喵佬的基础上继续维护代码,可能不限于发布docker一键部署版。
Q.E.D.