- 在sendmsg.py中实现微信状态检查,确保客户端就绪、已登录及接收者有效性。 - 增强消息和文件发送逻辑,添加发送结果验证,记录详细的发送状态信息。 - 更新README.md,详细描述新增功能和使用方法,包括微信状态检查和多格式图片支持。
164 lines
4.2 KiB
Markdown
164 lines
4.2 KiB
Markdown
# 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
|
||
- 基础消息发送功能
|
||
- 定时任务调度
|
||
- 飞书提醒机制
|
||
- 基础日志记录
|