BUAA TD automation command line utility
Project description
AutoTD
autoTD 是一个可安装的命令行工具包。安装后提供 autotd 命令,用于初始化本地配置目录、管理用户和图片、运行 TD 打卡流程、查询服务器返回的本学期锻炼次数,以及在后台进行定时检测。
PyPI 安装
要求:python >= 3.10
pip install autotd-buaa==0.1.2
本地开发
本项目采用标准 pyproject.toml 包结构:
python3 -m pip install -e .
autotd --help
构建本地 wheel/sdist:
python3 -m build
内部测试发布可使用 TestPyPI:
python3 -m twine upload --repository testpypi dist/*
初始化
所有运行数据存储在 ~/.autoTD 下。测试或临时运行时可用 AUTOTD_HOME 覆盖:
autotd init
autotd init --from ./autoTD
目录结构:
~/.autoTD/
├── config.json
├── users.json
├── settings.json
├── state.json
├── images/
└── logs/
└── YYYY-MM-DD-daytime-log.txt
用户管理
autotd user add 22375080 --entrance 2 --exit 6 --entrance-image image3.jpg --exit-image image2.jpg
autotd user add 22375080 --quick 沙河
autotd user add 22375080 --quick 学院路
autotd user list
autotd user show 22375080
autotd user update 22375080 --card-id CARDID --entrance 3 --exit 7 --entrance-image image1.jpg --exit-image image2.jpg
autotd user delete 22375080
autotd user count 22375080
card_id 为空时会自动使用学号的 16 进制大写形式。
使用 --quick 时,只需要指定校区:
--quick 沙河: 随机选择沙河入口机8/9/10、沙河出口机11/12/13,并从~/.autoTD/images/随机选择入口/出口图片。--quick 学院路: 随机选择学院路/本部入口机2/3/4、学院路/本部出口机5/6/7,并从~/.autoTD/images/随机选择入口/出口图片。- 其他字段使用默认值:
rounds=3、wait_time_min=180、wait_time_max=240、card_id自动生成。
图片管理
autotd image add ./image3.jpg
autotd image add ./photo.jpg --name entrance.jpg
autotd image add ./photo.jpg --name entrance.jpg --overwrite
autotd image list
图片会复制到 ~/.autoTD/images/。用户配置中引用的是图片文件名。
立即运行
立即执行一次所有用户:
autotd run --once
autotd run --once 会在当前终端前台执行并打印汇总。执行时某个用户失败会记录日志并继续后续用户。
定时运行
autotd run 会启动后台定时检测进程,终端会立即返回,不持续展示运行日志。日志写入 ~/.autoTD/logs/。
autotd schedule show
autotd schedule set --poll-seconds 60 --windows "07:30-10:00,11:30-14:00,15:30-20:00"
autotd run
autotd --stop
autotd run 会自动启用定时开关。需要停止后台定时检测时运行 autotd --stop。只想关闭定时触发但保留后台进程时,可使用 autotd schedule disable。
默认时间段为:
- 07:30 - 10:00
- 11:30 - 14:00
- 15:30 - 20:00
定时模式按北京时间判断日期。一天只会做一次定时批量尝试;无论成功或失败,当天都不会自动重试。
连接失败排查
如果日志中出现 Connection refused 或 无法连接 TD 服务器,先检查:
cat ~/.autoTD/config.json
server.ip 应为可访问的 TD 服务器地址,例如默认模板中的 10.212.28.38,端口为 8888。如果现有配置仍是 127.0.0.1,请编辑 ~/.autoTD/config.json,或重新导入已有项目配置:
autotd init --from /path/to/autoTD
同时确认当前网络可访问校园网或已连接 VPN。
测试
/opt/homebrew/anaconda3/envs/autotd/bin/python -m unittest discover -s tests -v
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autotd_buaa-0.1.2.tar.gz.
File metadata
- Download URL: autotd_buaa-0.1.2.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2aef127823029da3fb33b278bbbe4025b455086fe89da58c0e140e275b29fa91
|
|
| MD5 |
8f95becd62b3bba1ed8c67fad3813532
|
|
| BLAKE2b-256 |
7e8eef9d16f5c229d3020b9d41350cff5df12e454bfc2bbc7e26b49e7295f5b0
|
File details
Details for the file autotd_buaa-0.1.2-py3-none-any.whl.
File metadata
- Download URL: autotd_buaa-0.1.2-py3-none-any.whl
- Upload date:
- Size: 19.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1edc51e938a237b6941b7151c240ddc4e4f58d44ee5f1c62b06333f8dc4471d1
|
|
| MD5 |
65ef0a655afcffa473e9733c8074195c
|
|
| BLAKE2b-256 |
0557ad789721406fd35b3989646509bec0166ff00d461f95f01069282157fec4
|