直接原因

  • 昨天下午我不想去上课,签到也没折腾成功,一怒之下自己部署了这套程序。

根本原因:大一的时候用软件来签到,但是后面勾八(陈思)应该是知道了,用了二维码签到,但是那会技术有限,动态二维码的解码没有实现。

喵佬的开源脚本

于是我在github搜索了相关的程序,找到了喵大佬的脚本。

后端程序:https://github.com/miaochenxi/chaoxing-sign-cli

前端ui界面:https://github.com/miaochenxi/chaoxing-sign-ui

这套程序是基于 Nodejs 实现的一个签到命令行工具。

功能: 普通签到、拍照签到、手势签到、位置签到、签到码签到、二维码签到(10秒变换不影响),多用户凭据储存(多开)。

二维码签到!

在运行之前需要做些准备,请找一位挚友,发来拍的二维码的照片(无所谓几秒一变),用微信扫一扫二维码,或用其他工具识别,得到类似下面的结果:
qr
复制其中的 enc 参数,注意不要复制多余内容和空格,例如 1D0A628CK317F44CCC378M5KD92,复制该值,询问时填入。

位置签到

根据运行时的提示输入经纬度详细地址,经纬度可在这里自己获取 百度拾取坐标系统,点击某位置,经纬度将出现在网页右上方,复制该值,询问时填入。详细地址样例:中国河南省郑州市中原区沟赵乡红松路郑州轻工业大学(科学校区),该地址将显示在教师端。

拍照签到

需要事先准备一张用来提交的照片。浏览器访问超星云盘:https://pan-yz.chaoxing.com ,在根目录上传一张你准备的照片,命名为 0.jpg0.png 。若使用 UI 仓库的项目(查看高级),则可直接选择图片提交。

普通签到&手势签到&签到码签到

没有任何需要准备的,直接运行即可。

环境 💻

可在任意运行 NodeJS > v8.5.4 的平台签到,Windows、MacOS、Linux …

安卓手机上可以用 Termux 来运行NodeJS程序,查看Termux教程 。

部署过程

  • 这里我就演示在服务器端部署,linux系统为centos7.9、宝塔7.9企业版
  • 若你用其他终端或者heroku、云开发部署也是可以的,如果你愿意折腾的话。
  • 部署在3h5g的美国vps服务器里,先将项目clone到vps里(前端和后端都要clone)

后端部署不难,首先你需要:

  1. 将仓库克隆到本地:
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 文件夹。

宝塔具体操作如下图

微信图片_20220428102408

微信图片_20220428100350

如果你不想折腾,那宝塔面板就跟我填一样的就行。

PS:绑定域名先别开启ssl证书,后续也不需要开启,因为作者的前后端的接口没有完全用https,所以会造成报错,当然你技术过硬的话也可以完全靠自己解决这个问题(大佬勿喷)。

src/config/api.js :该文件中配置 baseUrl 变量为接口地址,默认 http://localhost:5000 。若接口部署在服务器,不要忘记将接口地址改为服务器IP或绑定的域名。

这里的我的域名没开启https,因为后端接口暂不支持https,于是baseUrl可以直接填入:http://你的域名:5000

注意

本程序仅为交流学习使用,借助学习通的平台,通过本项目加深http请求、网络通信、接口编写、交互设计等方面知识的理解,请勿用作商业以及其他用途。

鸣谢作者

非常感谢喵佬的开源脚本,喵佬的博客已经收录在友人帐的大佬分类里。

如若后续喵佬没空维护该项目了,本人会在喵佬的基础上继续维护代码,可能不限于发布docker一键部署版。

Q.E.D.