Files
abot/plugins/group_virtual

跨群聊天插件需求分析与文档

1. 需求概述

开发一个名为"跨群聊天"的微信机器人插件,该插件允许用户将多个微信群组合成一个虚拟聊天组,实现群组间消息的自动转发,使不同群的成员能够进行跨群交流。

2. 功能需求

2.1 核心功能

  1. 群组管理

    • 创建虚拟聊天组
    • 向虚拟聊天组中添加/删除微信群
    • 查看当前所有虚拟聊天组及其包含的群
    • 解散虚拟聊天组
  2. 消息转发

    • 自动捕获虚拟聊天组内任一群的消息
    • 将消息转发至同一虚拟聊天组内的其他群
    • 支持文本、图片等消息类型的转发(不支持语音、表情)
  3. 消息标识

    • 转发的消息需标明原始发送者信息(昵称)
    • 标明消息来源群组
    • 避免消息循环转发

2.2 扩展功能

  1. 权限控制

    • 设置管理员权限,只有管理员可以管理虚拟聊天组
    • 支持黑名单功能,可以屏蔽特定用户的消息不被转发
  2. 消息过滤

    • 支持关键词过滤,含有特定关键词的消息不转发
    • 支持消息类型过滤,可选择只转发特定类型的消息(仅支持文本、图片)
  3. 统计分析

    • 记录转发消息数量
    • 统计各群组活跃度

3. 技术架构

3.1 数据结构

  1. 虚拟聊天组(ChatGroup)

    • ID: 唯一标识符
    • 名称: 虚拟聊天组名称
    • 群组列表: 包含的微信群ID列表
    • 创建时间
    • 创建者
  2. 消息记录(Message)

    • 消息ID
    • 原始群ID
    • 发送者ID
    • 消息内容
    • 消息类型
    • 发送时间
    • 转发状态

3.2 接口设计

  1. 管理接口

    • 创建虚拟聊天组: createChatGroup(name, creatorId)
    • 添加群到虚拟聊天组: addGroupToChatGroup(chatGroupId, wxGroupId)
    • 从虚拟聊天组移除群: removeGroupFromChatGroup(chatGroupId, wxGroupId)
    • 解散虚拟聊天组: deleteChatGroup(chatGroupId)
    • 查询虚拟聊天组: listChatGroups(), getChatGroupDetail(chatGroupId)
  2. 消息处理接口

    • 消息接收: receiveMessage(wxGroupId, senderId, content, type)
    • 消息转发: forwardMessage(message, targetGroupIds)
    • 消息过滤: filterMessage(message, rules)

4. 数据存储

使用JSON文件存储虚拟聊天组配置和相关数据

{
  "chatGroups": [
    {
      "id": "cg001",
      "name": "技术交流联盟",
      "groups": ["wxid_group1", "wxid_group2", "wxid_group3"],
      "createdAt": "2023-05-01T10:00:00Z",
      "createdBy": "admin_user_id"
    }
  ]
}

5. 用户交互

5.1 命令格式

用户通过在群内发送特定格式的命令来管理虚拟聊天组:

  • 创建虚拟聊天组: #创建跨群 [名称]
  • 添加群到虚拟聊天组: #添加群 [虚拟聊天组ID] [当前群名称]
  • 查看所有虚拟聊天组: #查看跨群列表
  • 查看虚拟聊天组详情: #查看跨群 [虚拟聊天组ID]
  • 退出虚拟聊天组: #退出跨群 [虚拟聊天组ID]
  • 解散虚拟聊天组: #解散跨群 [虚拟聊天组ID]

5.2 消息展示格式

转发的消息格式示例:

[来自群"技术交流群"] 
张三:这是一条测试消息

6. 实现步骤

  1. 创建插件基础结构
  2. 实现数据存储模块
  3. 实现群组管理功能
  4. 实现消息捕获与转发功能
  5. 实现用户命令解析
  6. 添加消息过滤功能
  7. 实现权限控制
  8. 测试与优化

7. 注意事项

  1. 避免消息循环转发
  2. 确保消息转发的实时性
  3. 注意微信API的限制避免触发封号风险
  4. 保护用户隐私,不存储敏感信息
  5. 考虑高并发情况下的性能问题

8. 后续优化方向

  1. 支持更多消息类型的转发
  2. 提供Web管理界面
  3. 增加更细粒度的权限控制
  4. 支持定时消息和定向转发
  5. 添加AI智能过滤功能

这份需求文档提供了跨群聊天插件的基本框架和实现思路,可以根据实际开发过程进行调整和完善。