From d09feeb49844a4a0dd2c6b80e873381a198cf4c0 Mon Sep 17 00:00:00 2001 From: Xi Xu Date: Sun, 25 May 2025 20:17:17 +0800 Subject: [PATCH] Update README.zh-CN.md --- README.zh-CN.md | 145 ++++++++++++++++++++++++++++++------------------ 1 file changed, 90 insertions(+), 55 deletions(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index 50178a5..079a799 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -1,99 +1,134 @@ # CWU7 - 7 点起床困难户 -一个用于在早上 7 点准时预约羽毛球场的 Python 自动化工具。 +一个用于在早上 7:00 准时预约羽毛球场地的 Python 自动化脚本。该机器人可以自动导航预约界面,处理验证码挑战,并记录整个过程。 -## 概述 +## 功能特性 -CWU7 可以自动在配置的时间(默认 7:00 AM)准时预约羽毛球场。如果你讨厌早起抢场地,这个工具可以帮你: +- **精确计时**: 等到早上 7:00 准时开始预约流程 +- **自动导航**: 自动点击预约界面的各个步骤 +- **验证码识别**: 使用 OCR 技术识别并解决验证码挑战 +- **重试机制**: 失败时自动重试,可配置重试次数 +- **完整日志**: 将所有操作和错误记录到文件和控制台 +- **鼠标跟踪工具**: 包含用于查找 UI 坐标的辅助工具 -- 自动导航预约网站 -- 使用 OCR 技术处理验证码 -- 精确计时预约操作 -- 记录整个过程 +## 系统要求 -## 功能 +- Python 3.6+ +- Windows 操作系统 +- 所需 Python 包: -- **精确计时**:在配置的时间(默认 7:00 AM)准时执行 -- **验证码识别**:使用 OCR 技术自动识别验证码 -- **坐标追踪**:包含获取 UI 元素坐标的工具 -- **详细日志**:记录预约全过程方便排查问题 + ``` + pyautogui + ddddocr + numpy + Pillow + ``` -## 安装 +## 安装说明 -1. 克隆仓库: +1. 克隆此仓库: ```bash git clone https://github.com/xixu-me/CWU7.git cd CWU7 ``` -2. 安装依赖: +2. 安装所需依赖: ```bash - pip install pyautogui pillow numpy ddddocr + pip install pyautogui ddddocr numpy Pillow ``` -## 使用 +## 使用方法 -### 鼠标坐标追踪器 +### 运行预约机器人 -使用预约机器人前,需要先确定各 UI 元素的屏幕坐标: +1. 如需要,在 `run.py` 中配置预约时间和坐标 +2. 运行主脚本: + + ```bash + python run.py + ``` + +机器人将等到早上 7:00,然后自动尝试预约羽毛球场地。 + +### 鼠标位置跟踪器 + +使用跟踪工具来查找 UI 元素的坐标: ```bash python tracker.py ``` -将鼠标移动到重要 UI 元素上并记录坐标,然后在 run.py 文件中更新这些坐标。 +这将实时显示当前鼠标位置和像素颜色。按 Ctrl+C 退出。 -### 预约机器人 +## 配置说明 -运行预约机器人: +### 时间设置 -```bash -python run.py -``` - -默认情况下,机器人会等到早上 7:00 开始预约流程。 - -## 配置 - -编辑 run.py 中的以下常量来自定义机器人: - -- `RESERVATION_HOUR` 和 `RESERVATION_MINUTE`:设置预约的目标时间 -- `COORDINATES`:调整各 UI 元素的屏幕坐标 -- `WAIT_TIMES`:根据需要修改操作之间的等待时间 +修改 `run.py` 中的这些常量来更改预约时间: ```python -# 配置示例 -RESERVATION_HOUR = 7 # 目标小时(24 小时制) +RESERVATION_HOUR = 7 # 目标小时(24小时制) RESERVATION_MINUTE = 0 # 目标分钟 -COORDINATES = { - "badminton_button": (1101, 223), - # ...其他坐标 -} +``` + +### 坐标配置 + +`run.py` 中的 `COORDINATES` 字典包含所有点击位置。使用 `tracker.py` 为您的屏幕分辨率和界面找到正确的坐标。 + +### 重试设置 + +```python +MAX_RETRY_ATTEMPTS = 100 # 最大重试次数 ``` ## 工作原理 -1. 脚本等待到配置的时间(默认 7:00 AM) -2. 执行一系列点击操作导航预约界面 -3. 如果出现验证码: - - 从屏幕捕获验证码图像 - - 使用 OCR 识别文本 - - 输入识别出的文本 - - 提交表单 -4. 整个过程会记录到控制台和文件(`reservation.log`) +1. **等待目标时间**: 脚本等到配置的预约时间 +2. **打开小程序**: 点击预约界面 +3. **导航界面**: 自动点击完成预约步骤 +4. **处理验证码**: 使用 OCR 解决验证码挑战 +5. **失败重试**: 任何步骤失败时自动重试 +6. **记录结果**: 记录所有操作和结果 + +## 文件结构 + +- `run.py` - 主要的预约机器人脚本 +- `tracker.py` - 鼠标位置跟踪工具 +- `LICENSE` - GNU GPL v3 许可证 +- `.gitignore` - Git 忽略文件 +- `reservation.log` - 生成的日志文件(执行时创建) ## 故障排除 -- 如果机器人点击位置不对,使用 tracker.py 验证并更新坐标 -- 检查 `reservation.log` 获取详细错误信息 -- 确保屏幕分辨率与配置坐标时使用的分辨率一致 +### 常见问题 -## 免责声明 +1. **坐标错误**: 使用 `tracker.py` 找到正确的点击位置 +2. **验证码失败**: OCR 可能需要针对不同的验证码样式进行调整 +3. **时序问题**: 调整像素检查函数中的 `check_interval` +4. **屏幕分辨率**: 不同屏幕尺寸可能需要调整坐标 -本工具仅用于教育目的。使用自动化机器人可能违反某些预约系统的服务条款。使用风险自负。 +### 日志 + +查看 `reservation.log` 获取详细的执行日志和错误信息。 + +## 法律声明 + +本软件仅供教育目的提供。用户有责任遵守预约系统的服务条款。作者不对任何误用或违规行为负责。 ## 许可证 -采用 [GPL-3.0](LICENSE) 许可证授权。 +本项目采用 GNU 通用公共许可证 v3.0 - 详见 [LICENSE](LICENSE) 文件。 + +## 贡献 + +1. Fork 仓库 +2. 创建功能分支 +3. 提交更改 +4. 推送到分支 +5. 创建 Pull Request + +## 免责声明 + +这是一个旨在帮助合法预约的自动化工具。请负责任地使用,并遵守预约系统的服务条款。