Skip to content

UJS-Coder/UJShealthChecker

This branch is up to date with iconteral/UJShealthChecker:master.

Folders and files

NameName
Last commit message
Last commit date
May 12, 2020
May 16, 2020
May 10, 2020
Jan 21, 2021
Nov 3, 2020
Jan 21, 2021
Jan 21, 2021
Feb 6, 2021
Jan 21, 2021
May 15, 2020
Jan 21, 2021
Jan 21, 2021
Jan 21, 2021

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.

About

江大健康打卡助手

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%