celesWuff / ktpwarp-server

ktpWarp:课堂派自动签到
MIT License
31 stars 5 forks source link

ktpwarp-server

ktpWarp: 课堂派自动签到

特色:

1.3.4-beta 紧急更新说明

目前,由于课堂派 openapiv100 后端关闭,1.2.0-beta 至 1.3.3-beta 的版本可能已经无法正常使用。如果您遇到了该问题,请更新至 1.3.4-beta 版本。

1.3.4-beta 签到效率受限制,请参考 https://github.com/celesWuff/ktpwarp-server/issues/11#issuecomment-2106758958 了解详情。

注意

ktpWarp 仍处于 Beta 阶段,这代表 ktpWarp 尚未在生产环境中得到大规模的验证。

因此,ktpWarp 仍可能存在着未知的 Bug 或签到“脱靶”。如果您发现了 Bug,欢迎您在 Issues 中报告。

限制

课堂派的二维码签到使用了一个疑似 HMAC-SHA1 的签名来验证签到二维码的有效期,因此 ktpWarp 无法自主完成二维码签到,也不能通过已过期的二维码进行签到。

但是,您可以使用上面列出的任何一种交互方式进行签到,仅需进行一次扫码即可为 ktpWarp 系统中的所有用户签到。

Android app 的扫码速度最快,而 iOS MITM 模块可以让您自行选择任何一种扫码工具,您可以使用您手上最快的扫码器,因此首先推荐使用这两种方式。

部署

  1. 将本仓库 clone 到您的服务器或本地电脑

  2. 安装 Node.js 18 或更高版本

  3. 运行 corepack enable,如果您熟悉 Node.js,也可以选择您喜欢的方式使用 pnpm,或其他包管理器

  4. config.example.ts 重命名为 config.ts 并修改其中的配置

  5. 运行 pnpm install

  6. 运行 pnpm dev 在开发模式下启动,检查程序的输出,确保您的配置正确,能够正常登录所有用户,并且可以使用客户端连接,然后按 Ctrl + C 停止

  7. 运行 pnpm start 启动服务,ktpwarp-server 会在后台运行

  8. 运行 pnpm stop 停止服务

安全提醒

ktpwarp-server 无法在 GitHub Actions 运行,请勿以任何方式将 config.ts 提交到 git 中,否则您的课堂派账号密码及 Telegram Bot token 等信息将对所有人可见。

名字

ktpWarp 是本项目的总称,包括了 ktpwarp-server、ktpwarp-web、ktpwarp-ios-mitm 和 ktpwarp-android。

ktpwarp-server 是项目的核心,它负责与课堂派进行交互,完成签到,它也配备了充当客户端的 Telegram 机器人,供用户进行操作。

其余三个项目均为 ktpwarp-server 的客户端。

ktpwarp-web 是项目的 Web 客户端,您可以在浏览器中通过它查看和管理您的 ktpwarp-server,也可以使用该 Web 客户端来进行扫码,但速度不如另外两个。

ktpwarp-ios-mitm 是项目的 iOS MITM 脚本,它负责将您扫描到的每一个课堂派签到二维码重定向给 ktpwarp-server,同时也提供 Web 界面。

ktpwarp-android 是项目的 Android app,它能够直接进行扫码并将结果提交给 ktpwarp-server。

更新日志

1.3

1.2

1.1

1.0

许可证

MIT License