Skip to content

新时代完美校园打卡机,支持在线自助配置

Notifications You must be signed in to change notification settings

bakeham/time-helper

 
 

Repository files navigation

完美校园自动打卡机

Time Helper Get AppId Get Token ServerChan Message Test

MM再也不用担心自己上光荣榜了
如果此程序对你有用,右上给个一键三连吧😂(雾)

❗插播公告

2021/1/24

提示在新设备上登录,需要验证码的解决方案

鉴于完美校园对新设备做出登录限制,必须通过验证码登录,我们的登录策略也要做出相应调整。
此前配置过DEVICE_SEEDDEVICE_ID参数的小伙伴应该不受此限制影响。 由于GitHub Action不支持在线输入验证码,Server酱也不支持从微信反向发送参数,因此在线自助配置已失效。

解决方案:在执行到本页的设置Secrets步骤时,通过上面的链接方法得到DEVICE_SEED参数,将其填入Secrets列表,再继续本页的步骤。
之前已经配置过却也遇到这个问题的小伙伴,只需按照步骤更新DEVICE_SEED值即可。

使用之前可以逛逛Issues区,查看项目的最新情况,因为代码里的自述更新起来比较麻烦,所以不涉及代码更新的消息我都丢Issues里了,遇到问题在那里也可以提出新问题。

📌功能

  • 登录
    • 密码登录(建议)
    • 验证码登录(首次配置需要)
    • Token登录
  • 打卡
    • 使用最后一次打卡数据
    • 随机体温范围
    • 随机定位范围
    • 自动填写表单
    • 启动时间配置(手动调节
  • 消息通知
    • Server酱微信通知
    • 控制台输出
  • Actions工具
    • 在线参数获取
    • 消息发送测试

🚀目录

快速配置

教程包含图文内容,如果加载不出图请稍等片刻。
不需要下载代码,也不用购买服务器,超级白嫖怪。

准备工作

  1. 下载完美校园app并登录账号,完成一次打卡,之后的自动打卡依赖本次打卡所填写的数据。
  2. 注册GitHub账号,程序运行在GitHub服务器。

Fork本项目

点击页面右上角的Fork按钮,将仓库复制到自己账号
之后的操作全部在Fork后的仓库中进行

点击Fork

Fork

注册Server酱

Server酱用于配置微信通知和获取参数。
可以用Github账号登录,很快啊,啪一下就登录了。
然后绑定你的微信,顺便发个消息试试。

点击注册

登录注册之后就可以看到你的SCKEY,记下来等下一步用。

设置Secrets

配置程序运行参数,支持参数列表见Secret配置
位置:Settings=>Secrets=>New reposltory secret
Secret

建议的配置值如下

名称
TYPE password
USERNAME 用户名/手机号
PASSWORD 密码
DEVICE_SEED 通过此方法获取
APP_ID 打卡项目ID,暂时不填,等下一步获取
SCKEY 上一步拿到的SCKEY

获取AppID

注意:Actions功能可能默认关闭,如果关闭就先启用一下(怎么启用我忘了)。
位置:Actions=>Get AppId=>Run workflow=>Run workflow
RunAction 点击绿色按钮运行GetAppID程序,运行完成后手机上应该收到一条通知,类似这样:

打卡项目 APP_ID
教职工打卡 teacher
学生打卡 student
其他人 other

看好你所在的组,记下后面的APP_ID,回到第三步:设置SecretsAPP_ID添加到Secrets中

测试打卡

所有参数设置完毕,接下来运行打卡程序进行测试
位置:Actions=>Time Helper=>Run workflow=>Run workflow
测试打卡 如果配置正确,手机上应该收到打卡成功的通知,否则可能会收到异常报告。
如果SCKEY没有配置或错误,结果会输出到Action日志中。

运行时间配置

运行时间暂时无法通过参数配置,只能通过修改仓库中的.github/workflows/timer.yml代码来完成
找到timer.yml中的如下位置

on:
  workflow_dispatch:
  schedule:
    - cron: "0 0 * * *"
    - cron: "0 4 * * *"

其中每一行cron都代表一个启动时间,点击查看详细cron配置文档。

┌───────────── 分钟 (0 - 59)
 ┌───────────── 小时 (0 - 23)
  ┌───────────── 日期 (1 - 31)
   ┌───────────── 月份 (1 - 12  JAN-DEC)
    ┌───────────── 星期 (0 - 6  SUN-SAT)
                                       
    
    
* * * * *

Github的cron时区为UTC+0,而我们是UTC+8,因此我们的时间需要减去8后才是cron中的时间。
对于配置- cron: "0 4 * * *",其运行时间为UTC+0的凌晨4点0分,也就是我们UTC+8时区的中午12点整,实际运行时间会因服务器排队而延迟。

⚠注意:有时打卡会因为网络原因而失败,若发现有失败的情况,建议设置一天打两次卡。

令牌登录

更新:测试失败,此模式在Github服务器上不可用。

每天打卡都登录可能有点奇怪,因此程序提供了令牌免登录功能。 
经过前几步配置并正常打卡后,用同样的步骤运行Actions中的`Get Token`程序  
位置:`Actions`=>`Get Token`=>`Run workflow`=>`Run workflow`  
稍后微信将会收到可用于服务器的Token配置,样子如下:  
|名称||
|-|-|
|TYPE|token|
|TOKEN|*****|
参照[设置Secrets](#设置secrets)步骤将值更新至Secrets,再次运行打卡测试  
位置:`Settings`=>`Secrets`=>`Update`  
如果正常,微信应该收到打卡成功或频繁打卡通知。

命令行工具

运行命令前先克隆仓库到本地,并安装node.js 14.x版本(测试平台)
然后运行npm install命令安装项目依赖 运行参数通过环境变量传递,例如设置DEVICE_SEED参数:

bash

export DEVICE_SEED=6666

cmd

set DEVICE_SEED=6666

APPID工具

获取打卡项目ID

npm run appId

消息测试工具

测试你的Server酱正不正常。

npm run send <标题> <内容>

配置向导

配置向导可以引导你配置关键参数,并输出配置结果

npm run setup

启动打卡

运行之后开始打卡

npm run main

Secret配置

这里包含了所有支持在Secret中配置的字段。
建议设置DEVICE_SEEDDEVICE_ID字段来固定设备ID。 必须设置DEVICE_SEEDDEVICE_ID字段来固定设备ID。

名称 类型/可选值 默认值 说明
TYPE password、sms、token 登录类型,password:密码、sms:短信,token:令牌
USERNAME string 用户名/手机号
PASSWORD string 密码
TOKEN string 令牌,根据教程获取
APP_ID string 打卡项目ID,根据教程获取
DEVICE_ID string 设备ID(二选一)
DEVICE_SEED number Math.random()*0xFFFF0000 设备ID生成种子(二选一)
TEMP_RANGE string 35.4-36.9 体温范围(可选)
SCKEY string Server酱SCKEY(建议)
TEXT_OK string 芜湖~打卡完成! 成功提示信息(可选)
USER_AGENT string ... 登录使用的UA(可选)
USER_AGENT2 string ... 打卡使用的UA(可选)
MODEL string HUAWEI INE-AL00 设备型号(可选)
MODEL_CODE string INE-AL00 设备代号(可选)
SYSTEM_VERSION number 9 系统版本(可选)
SYSTEM_TYPE android android 系统类型(可选)
PROXY_HOST string 代理主机(可选)
PROXY_PORT number 代理端口(可选)
APP_VERSION number 10525101 完美校园版本(可选)

About

新时代完美校园打卡机,支持在线自助配置

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%