这是一个为厦门软件职业技术学院设计的课堂考勤自动签到程序。皆在为了防止漏签到,防止因系统故障而无法签到。
此程序会在签到开始前循环检测签到是否发起,并在发起后自动尝试签到。签到所使用的经纬度信息存储在 location_info.json 中,如果没有准确的经纬度,则会选择一个最为接近的经纬度。
学校签到系统使用 GCJ02 坐标系,可通过 经纬度定位测距工具 微信小程序获取对应经纬度。
Important
此程序(脚本)仅供交流与学习
程序(脚本)基于 Python 3.12.3 编写,编写时使用了 LLM 大语言模型,如 gemini-2.5-pro 等。
- 去 releases 下载已经打包好了的压缩包,解压后获得以下文件:
.
├── config.json
├── location_info.json
└── xmist_auto-checkin.exe
1 directory, 3 files
- 修改
config.json为自己的信息
{
"CHECK_INTERVAL": 30, // 检查课表更新的间隔
"XMIST_USERNAME": "XXXXXXXX", // 登录用户名(也就是 `学号` )
"XMIST_PASSWORD": "XXXXXXXX", // 登录密码
"use_remember_token": false, // 是否通过 `remember_token` 来“记住密码”, 这样下次就无需使用账号密码来登录 (如果出现 `在通过api解析验证码时发生错误` 时使用)
"only_use_remember_token": false, // 是否只使用 `remember_token` 来登录
"rme_token": "", // 普通用户无需理会
"advance_waiting_time_seconds": 900, // 在课程开始前多少秒循环检测是否可以签到
"request_timeout": 30, // 请求超时时间
"push": {
"enable": false, // 是否使用 `WxPusher` 推送消息
"WxPusher_SPT": ""
}
}
- 运行
xmist_auto-checkin.exe即可
[2025-11-06 21:14:11] 尝试登录中...
[2025-11-06 21:14:17] [登录 1/5] token: XXXXXXXXXXXX, ticket: XXXXXXXXXX
[2025-11-06 21:14:17] [登录 2/5] 成功获取oauth_approval: XXXXXXXXXXX
[2025-11-06 21:14:17] [登录 3/5] 审批确认成功, 应用名称为"XXXXXXX"
......
-
安装合适版本
python和git, 推荐版本Python 3.12.3 -
拉取项目源码
-
运行
pip install -r requestment.txt来安装依赖 -
修改
config.json -
运行
python main.py
厦门软件职业技术学院于2025年10中旬开始使用新的课堂考勤签到系统,此系统疑似由学校自主编写。
- 一键签到: 教师发起此类型签到后,学生有大约5分钟的时间于学生端点击
签到按钮签到。签到时会通过定位上传经纬度来判断学生是否在教室附近(允许误差10米),如果经纬度偏差较大或无法定位则反馈定位失败且无法正常签到 - 签到码签到: 教师发起此类型签到后,系统会随机一个6位数的签到码。教师需要将此签到码公示于教室大屏幕或口头告知学生,学生同样有大约5分钟的时间于学生端点击
签到按钮并输入签到码签到。签到时依然会上传经纬度判断位置
Warning
无论是哪一个签到方式,一旦发起后学生只有大约5分钟的时间签到,超过时间后学生无法签到,并且教师也无法再次发起签到,而且已签到的学生在前端显示为未签到(在后端记录为已签到)
详见: api解析