teddy 6acdaea9f8 feat(sendmsg, README): 添加微信状态检查和发送结果验证功能
- 在sendmsg.py中实现微信状态检查,确保客户端就绪、已登录及接收者有效性。
- 增强消息和文件发送逻辑,添加发送结果验证,记录详细的发送状态信息。
- 更新README.md,详细描述新增功能和使用方法,包括微信状态检查和多格式图片支持。
2025-08-22 18:02:11 +08:00

164 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# WXMSG - 微信消息自动发送程序
## 功能概述
这是一个自动发送每日AI新闻图片和消息到微信的程序具有完整的日志记录、错误处理和微信状态检查功能。
## 主要功能
- **定时发送**: 每天在指定时间自动发送图片和消息
- **容错机制**: 微信失败时自动发送飞书提醒
- **详细日志**: 完整的操作日志记录,便于问题排查
- **进程管理**: 支持后台运行和进程控制
- **微信状态检查**: 自动检查微信客户端状态和接收者有效性
- **智能重试**: 支持多种图片格式,自动重试机制
## 新增功能
### 微信状态检查
程序现在会自动检查:
- 微信客户端是否就绪
- 微信是否已登录
- 接收者是否存在于联系人列表
- 当前会话数量和联系人数量
- 微信窗口状态
### 发送结果验证
使用wxauto的WxResponse对象验证
- 文件发送是否成功
- 消息发送是否成功
- 详细的发送状态信息
- 部分失败时的智能处理
### 多格式图片支持
支持多种图片格式:
- .jpg
- .jpeg
- .png
## 日志功能
### 日志文件位置
所有日志文件保存在 `wxauto_logs/` 目录下,按日期和模块分类:
- `sendmsg_YYYYMMDD.log` - 主发送模块日志
- `scheduler_YYYYMMDD.log` - 定时任务调度器日志
- `send_openmsg_YYYYMMDD.log` - 飞书提醒消息日志
- `send_filemsg_YYYYMMDD.log` - 文件未找到提醒日志
- `service_runner_YYYYMMDD.log` - 后台服务启动日志
- `stop_scheduler_YYYYMMDD.log` - 进程停止日志
### 日志级别
- **INFO**: 正常操作信息
- **WARNING**: 警告信息
- **ERROR**: 错误信息
- **DEBUG**: 调试信息
### 日志内容
每个日志条目包含:
- 时间戳
- 模块名称
- 日志级别
- 函数名和行号
- 详细消息
## 使用方法
### 1. 直接运行
```bash
python sendmsg.py
```
### 2. 启动定时任务
```bash
python scheduler.py
```
### 3. 后台运行
```bash
python service_runner.py
```
### 4. 停止服务
```bash
python stop_scheduler.py
```
### 5. 测试微信状态
```bash
python test_wechat_status.py
```
## 配置说明
`config.py` 中配置:
- 发送时间
- 文件路径
- 消息内容
- 飞书API配置
## 故障排查
### 查看日志
1. 检查 `wxauto_logs/` 目录下的最新日志文件
2. 根据时间戳找到相关操作的日志
3. 查看ERROR级别的日志了解错误详情
### 常见问题
1. **微信客户端问题**: 查看 `sendmsg_*.log` 中的微信初始化日志
2. **文件未找到**: 检查文件路径配置和文件是否存在
3. **飞书API问题**: 查看 `send_openmsg_*.log``send_filemsg_*.log`
4. **进程管理问题**: 查看 `service_runner_*.log``stop_scheduler_*.log`
### 微信状态检查
运行测试脚本检查微信状态:
```bash
python test_wechat_status.py
```
这将显示:
- 微信客户端状态
- 登录状态
- 接收者有效性
- 可用方法列表
### 日志示例
```
2024-01-15 11:40:00 - sendmsg - INFO - check_wechat_status:45 - ✅ 微信已登录,当前会话数量: 15
2024-01-15 11:40:00 - sendmsg - INFO - check_wechat_status:52 - ✅ 接收者 '文件传输助手' 存在于联系人列表中
2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:120 - 🎉 所有内容发送完成!
2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:125 - 发送结果总结:
2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:126 - 📎 文件发送: ✅ 成功
2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:127 - 💬 消息发送: ✅ 成功
```
## 依赖要求
- Python 3.13+
- wxauto
- lark-oapi
- schedule
- psutil (可选,用于进程管理)
## 注意事项
1. 确保微信客户端已登录
2. 检查文件路径配置是否正确
3. 验证飞书API配置是否有效
4. 定期检查日志文件大小,避免占用过多磁盘空间
5. 运行前建议先执行 `test_wechat_status.py` 检查微信状态
## 更新日志
### v0.2.0
- 添加微信状态检查功能
- 使用WxResponse验证发送结果
- 支持多种图片格式
- 改进错误处理和日志记录
- 添加微信状态测试脚本
### v0.1.0
- 基础消息发送功能
- 定时任务调度
- 飞书提醒机制
- 基础日志记录