- 投稿接收 — 用户发送「投稿」→ 连续发送文字/图片 →「停止接收」结束
- 朋友圈发布 — 自动将投稿内容发布为朋友圈(纯文字/纯图片/混合)
- 评论同步 — 监听朋友圈评论,格式化为「昵称:内容」后回复
# 安装依赖
pip install -e .
# 复制配置
cp .env.example .env
# 运行(Mock 模式,无需真实微信)
python main.py
# 调试模式
python main.py --log-level DEBUGwechat_submission_bot/
├── main.py # 入口
├── config/ # 配置
│ └── settings.py
├── wechat/ # 微信协议抽象层
│ ├── client.py # IWechatBot 接口 + BotFactory
│ ├── message.py # 消息模型
│ ├── media.py # 媒体处理
│ ├── exceptions.py # 异常定义
│ └── mock_adapter.py # Mock 适配器(开发用)
├── submission/ # 投稿模块
│ ├── manager.py # 投稿状态机
│ ├── models.py # 投稿领域模型
│ └── storage.py # 图片存储
├── moments/ # 朋友圈模块
│ ├── publisher.py # 发布管理
│ └── formatter.py # 内容格式化
├── comments/ # 评论模块
│ ├── listener.py # 评论监听
│ └── responder.py # 评论回复
├── database/ # 数据库
│ ├── db.py # 连接管理
│ └── models.py # ORM 模型
├── utils/ # 工具
│ ├── logger.py # 日志
│ └── file.py # 文件操作
├── pyproject.toml
└── .env.example
用户 → 微信协议 → IWechatBot (抽象) → 业务逻辑 → 数据库
↑
协议适配器层(独立封装)
业务代码只依赖 IWechatBot 接口,不依赖具体微信框架。
pip install -e ".[dev]"
pytest实现 IWechatBot 接口并注册到 BotFactory:
from wechat.client import BotFactory, IWechatBot
class IPadWechatBot(IWechatBot):
# 实现所有抽象方法...
pass
BotFactory.register("ipad", IPadWechatBot)