Skip to content

UJS-Coder/UJShealthChecker

 
 

Repository files navigation

UJShealthChecker-UJS健康打卡助手

GitHub

描述

专为江苏大学建康打卡系统设计的自动化打卡工具,现以 Python3 呈现。

目前处于早期开发 (弃坑) 阶段其功能包括

  • 每天定时自动打卡
  • 支持用户名/密码登录(需要)
  • 支持 Cookie 登录
  • 微信推送打卡结果
  • 无需桌面环境,云打卡友好
  • 基于 Python3
  • 支持两种工作模式
  • 自动获得位置信息
  • 自动获得体温

若你有一片闲置的 RaspberryPi 或者是一台闲置的 VPS, 可获得最佳体验。

使用方法

安装依赖

对于 Linux 用户(以 Ubuntu 为例)

sudo apt install python3 pip3
pip3 install -r requirements.txt
  • 安装必须的库,如遇失败,请赋予 管理员/root 权限
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # (可选,建议)切换 pypi 镜像到清华大学镜像站
pip3 install beautifulsoup4 requests pycryptodome
  • (可选)安装 Git
  • (可选)使用 Git 拉取代码
git clone https://github.com/iconteral/UJShealthChecker.git

配置

首次运行请进行配置,程序的配置文件为 conf.ini

项目 说明 取值
checkTime 设定的签到时间 0 - 23 整数(注意:每天下午3点至5点是系统数据处理时间,这段时间系统关闭
temperatureSource 体温来源 randomNomral 随机生成正常体温;manual 人工设定;sensorSource 从传感器取得*
enableServerChan 是否开启微信推送** Bool : False/True
serverChanKEY Server酱 KEY 若 enableServerChan 为 True ,则必填,通常情况下是 54 长度的字符串
login 登录方式 cookie (不推荐)或 usernamePassword
cloud_sessionID Cookie : cloud_sessionID*** 32 长度的字符串,仅在登录方式为cookie时填写
userName 用户名(一卡通) 仅在登录方式为 usernamePassword 时填写
passWord 密码 仅在登录方式为 usernamePassword 时填写

注: * 待实现 ** 需要使用 Server酱 提供的推送服务,详见 FAQ:获取 Server酱 服务 *** FAQ:如何获取Cookie

配置完成后,首次运行以初始化程序

python chechker.py

该过程会收集用户的默认信息以进行打卡,信息将会保存在 info.ini 中,请详细检查此文件中的信息以防误报,其中 qtyc 为必填字段,详见 FAQ: info.ini 的说明

运行

本工具有两种工作模式,一种是普通模式,完成一次打卡即退出;另一种是常驻模式,程序将一直常驻不会退出,直到崩溃或出错为止。

a.常驻模式

检查无误后,大功告成,直接运行程序即可,不出意外的话 ,程序会在每天的 checkTime 左右🤔为您打卡

python checker-daemon.py

若需要后台运行,对于 Linux 用户,推荐使用 screen,以 Ubuntu 为例:

sudo apt install screen
screen -S checker # 创建一个新的 session 名为 checker
python chechker.py # 程序运行之后使用 ctrl + a + d 退出 session
screen -r checker # 回到 checker session

b.普通模式

直接运行即可

python3 checker.py

为了实现自动化打卡需要使用系统的 cron 定时运行,对于 linux 系统的用户,可以使用 cron 以自动运行,执行命令以编辑 crontab:

crontab -e

在文件末尾加上(以每天7:00自动运行 checker.py,保存输出到 ~/checklog.txt 为例)

0 7 * * * python3 checker.py > ~/checklog.txt

FAQ

获取 Server酱 服务

前往这里注册一个 SCKEY ,再前往这里绑定您的微信

如何获取Cookie

以 Chrome 为例,前往江苏大学服务中心登录 F12 进入控制台,点击 Application -> Cookies -> http://yun.ujs.edu.cn, 找到 cloud_sessionID 的值

请注意:由于 sessionID 易被吊销,不推荐使用 cookie 进行登录

cookies

info.ini 的说明

一般情况下,[fixedInfo]的内容不可修改,[additionalInfo]根据需要填写,可以留空

项目 说明 举例
jtgjbc 返回时乘坐交通工具的班次 CI915
bz 备注
latitude 无用
longitude 无用
ykt 一卡通号,不可更改 3190000000
dwmc 部门/学院,不可更改 理学院
zy 专业,不可更改 数学与应用数学
bj 班级,不可更改 7701
xm 姓名,不可更改 林子月
zjh 证件号,不可更改 440101199900000000
xb 性别,不可更改
nl 年龄,不可更改 20
sjh 手机号,不可更改 2025550185
sfhbj 是否湖北籍 否/是
sfyxszd 是否在镇江 否/是
xxdz 详细地址 洛圣都威斯普奇
sffx 是否返回镇江 否/是
sfgtjzryfrks 共同居住人员或密切接触人员是否有发热、咳嗽等症状 否/是
xwwd 昨日下午温度 50.1
swwd 今日上午温度 10.3
rylb 人员类别 教工/职工/学生/其他
ryjtlb 人员具体类别 本科生/研究生/留学生/港澳台学生
sfid 省份id(通常为身份证号码前两位+0000) 440000
csid 城市id(通常为身份证号码前两四位+00) 440100
xqid 辖区id(通常为身份证号码前两六位) 440105
jqdt 近期动态 近14天内前往中高风险地区并返回镇江/近14天内未离开镇江/当前在中高风险地区/当前在低风险地区(不在镇江)/近14天内前往低风险地区并返回镇江
dzsj_m 返回镇江时间-月 5
dzsj_d 返回镇江时间-日 20
czjtgj 返回时乘坐交通的工具 飞机/火车/自驾/轮船/客车/其他
yxzt 医学状态 无/确诊/疑似/隔离/未隔离/已解除隔离/已治愈出院/当日有发热咳嗽等疑似症状
mqzdyqdyjcs 潜在接触病毒途径 1月10日之后到访过重点疫区/没去重点疫区但与重点疫区人员有接触史/滞留重点疫区人员/其他原因需列入重点防控/ (空,代表无)
zdyq 到访的重点疫区或接触该疫区人员 湖北全省/浙江省温州市/浙江省台州市/浙江省杭州市/浙江省宁波市/河南省信阳市/河南省驻马店市/安徽省合肥市/安徽省阜阳市/江西省南昌市
xsfxbj 是否返校 未返校/已返校
qtyc 其他异常 (初始化后需要手动填写) 无/不发烧但咳嗽/不发烧但腹泻
btn 无用

免责声明

在使用本程序之前,您必须同意此 AUP(可接受使用策略):

  • 禁止非法用途,包括且不仅限于隐瞒疫情
  • 遵守所在地区的法律法规

对于违反本 AUP 的用户,本程序有权停止对其服务,因此,作者明确拒绝承担任何责任。

许可

WTFPL

© 2020 WTFPL – Do What the Fuck You Want to Public License.

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%