QQbot 是一个基于 NcatBot 框架开发的 QQ 群消息爬取与分析工具。它能够自动监听并保存指定群的消息到本地数据库,支持历史消息获取、定时备份、多群监听等功能。后续将加入消息分析、统计报表等高级功能。
- NcatBot 官方文档: https://docs.ncatbot.xyz/
- NcatBot 项目地址: https://github.com/NapNeko/NcatBot
QQbot/
├── main.py # 主程序入口
├── config.json # 配置文件
├── messages.db # SQLite 数据库
├── bot.log # 日志文件
├── src/ # 源代码目录
│ ├── core/ # 核心模块
│ │ ├── __init__.py
│ │ ├── bot.py # 主机器人类
│ │ └── config.py # 配置管理
│ ├── handlers/ # 事件处理模块
│ │ ├── __init__.py
│ │ ├── group_handler.py # 群消息处理
│ │ └── private_handler.py # 私聊消息处理
│ ├── services/ # 服务模块
│ │ ├── __init__.py
│ │ ├── group_service.py # 群组服务
│ │ ├── message_service.py # 消息服务
│ │ └── backup_service.py # 备份服务
│ ├── utils/ # 工具模块
│ │ ├── __init__.py
│ │ ├── database.py # 数据库操作
│ │ └── message_parser.py # 消息解析
│ └── plugins/ # 插件目录
│ └── analyzer/ # 消息分析插件
├── data/ # 数据目录
│ └── backups/ # 数据库备份
└── logs/ # 日志目录
-
消息监听与存储
- 实时监听群消息
- 定期获取历史消息
- 消息解析与存储
-
数据管理
- SQLite 数据库设计
- 数据备份与恢复
- 数据去重与完整性检查
-
群信息管理
- 获取群基本信息
- 获取群成员列表
- 群信息定期更新
-
消息分析(计划中)
- 活跃度分析
- 关键词统计
- 互动关系图谱
-
用户界面(计划中)
- 命令行控制界面
- Web 管理界面
- Python 3.10+
- NcatBot 框架
- SQLite3
-
安装 NcatBot 框架:
pip install ncatbot -U -i https://mirrors.aliyun.com/pypi/simple
-
克隆或下载本项目:
git clone https://github.com/yourusername/QQbot.git cd QQbot -
创建配置文件
config.json:{ "bot_uin": "你的QQ号", "target_groups": [群号1, 群号2, ...], "database_path": "messages.db", "backup_interval": 3600, "history_fetch_interval": 1800, "ws_uri": "ws://localhost:3001", "token": "napcat", "max_retries": 3 }
-
启动 NapCat 服务器(如果尚未启动):
- 通过 NapCat 官方客户端启动
- 确保 WebSocket 服务已开启,默认地址为
ws://localhost:3001
-
运行机器人:
python main.py
-
机器人将自动连接到 NapCat 服务器,并开始监听配置的群消息
机器人支持通过私聊命令进行控制:
状态- 查看机器人当前状态备份- 手动触发数据库备份更新群信息- 手动更新群信息和成员列表获取历史消息- 手动获取历史消息分析 群号 [天数]- 分析指定群的活跃度插件列表- 查看已加载的插件
- group_id: 群号(主键)
- group_name: 群名称
- member_count: 成员数量
- last_update: 最后更新时间
- group_id: 群号
- user_id: 用户QQ号
- nickname: 昵称
- card: 群名片
- role: 角色(管理员/成员)
- join_time: 加入时间
- last_update: 最后更新时间
- message_id: 消息ID(主键)
- group_id: 群号
- user_id: 发送者QQ号
- message_type: 消息类型
- content: 消息内容(JSON格式)
- raw_message: 原始消息文本
- time: 消息时间戳
- message_seq: 消息序号
- message_data: 完整消息数据(JSON格式)
- 基础框架搭建
- 消息监听与存储
- 群信息获取
- 数据库设计
- 定时备份功能
- 代码重构与模块化
- 消息解析优化
- 历史消息获取完善
- 数据去重机制
- 权限系统实现
- 基于 AuthManager 的权限控制框架
- 群组级别权限管理
- 用户级别权限管理
- 命令级别权限管理
- 权限配置文件的自动加载与保存
- 消息队列系统
- 基于 MessageQueue 的消息发送队列
- 消息发送频率限制与随机延迟
- 消息优先级处理
- 消息发送失败重试机制
- 日志系统优化
- 分级日志(DEBUG/INFO/WARNING/ERROR)
- 日志自动轮转与保留时间设置
- 自定义日志过滤器
- 特定功能日志分离(如数据库操作日志)
- 数据库操作优化
- 基于 SQLiteDB 的数据库操作封装
- 数据库连接池管理
- 数据库事务支持
- 数据库查询优化
- 消息处理工具集
- 消息段处理工具(图片、语音、文本等)
- 模板渲染图片生成
- 多媒体资源管理
- 插件系统增强
- 插件热加载机制
- 插件依赖管理
- 插件配置界面
- 插件权限集成
- 数据分析功能
- 群活跃度分析与可视化
- 用户行为分析
- 关键词提取与话题分析
- 消息情感分析
- 自动化管理功能
- 违规消息自动检测
- 群成员行为监控
- 自动欢迎新成员
- 定时任务系统
- Web 管理面板
- 实时监控面板
- 数据可视化展示
- 配置管理界面
- 用户权限管理界面
- API 系统
- RESTful API 接口设计
- WebSocket 实时推送
- API 权限控制
- API 文档自动生成
- 智能对话系统
- 基于 GPT 的智能回复
- 自定义对话模板
- 上下文对话管理
- 多轮对话支持
- 多媒体处理增强
- 图片识别与处理
- 语音识别与合成
- 视频处理与分析
- 群管理工具集
- 群公告管理
- 群文件管理
- 群投票系统
- 群活动组织工具
- 监控与报警系统
- 性能监控(CPU、内存、网络)
- 异常监控与自动报警
- 服务状态监控
- 备份系统增强
- 增量备份机制
- 自动恢复功能
- 多备份位置支持
- 备份加密
- 安全系统
- 访问控制与认证
- 数据加密存储
- 防攻击机制
- 测试系统
- 单元测试框架
- 集成测试
- 性能测试
- 自动化测试
- 部署优化
- Docker 容器化
- CI/CD 流程
- 多环境配置
- 集群部署支持
-
第一阶段(1-2个月):核心功能实现
- 权限系统实现
- 消息队列系统
- 日志系统优化
- 数据库操作优化
-
第二阶段(2-3个月):功能扩展
- 消息处理工具集
- 插件系统增强
- 数据分析功能
- 自动化管理功能
-
第三阶段(3-4个月):用户界面与运维
- Web 管理面板
- API 系统
- 监控与报警系统
- 备份系统增强
-
第四阶段(4-6个月):高级功能与优化
- 智能对话系统
- 多媒体处理增强
- 群管理工具集
- 测试与部署优化
欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。
MIT License