From 1d7f1cc5d5ead11f5d1ad2859bba2c11d9bb877d Mon Sep 17 00:00:00 2001 From: Mrs4s <1844812067@qq.com> Date: Thu, 8 Oct 2020 23:28:22 +0800 Subject: [PATCH] add: group_card event. --- coolq/bot.go | 1 + coolq/event.go | 14 ++++++++++++++ docs/cqhttp.md | 17 +++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/coolq/bot.go b/coolq/bot.go index fc81240..b132998 100644 --- a/coolq/bot.go +++ b/coolq/bot.go @@ -66,6 +66,7 @@ func NewQQBot(cli *client.QQClient, conf *global.JsonConfig) *CQBot { bot.Client.OnGroupMemberJoined(bot.memberJoinEvent) bot.Client.OnGroupMemberLeaved(bot.memberLeaveEvent) bot.Client.OnGroupMemberPermissionChanged(bot.memberPermissionChangedEvent) + bot.Client.OnGroupMemberCardUpdated(bot.memberCardUpdatedEvent) bot.Client.OnNewFriendRequest(bot.friendRequestEvent) bot.Client.OnNewFriendAdded(bot.friendAddedEvent) bot.Client.OnGroupInvited(bot.groupInvitedEvent) diff --git a/coolq/event.go b/coolq/event.go index d03a8a4..3eb65ee 100644 --- a/coolq/event.go +++ b/coolq/event.go @@ -310,6 +310,20 @@ func (bot *CQBot) memberPermissionChangedEvent(c *client.QQClient, e *client.Mem }) } +func (bot *CQBot) memberCardUpdatedEvent(c *client.QQClient, e *client.MemberCardUpdatedEvent) { + log.Infof("群 %v 的 %v 更新了名片 %v -> %v", formatGroupName(e.Group), formatMemberName(e.Member), e.OldCard, e.Member.CardName) + bot.dispatchEventMessage(MSG{ + "post_type": "notice", + "notice_type": "group_card", + "group_id": e.Group.Code, + "user_id": e.Member.Uin, + "card_new": e.Member.CardName, + "card_old": e.OldCard, + "time": time.Now().Unix(), + "self_id": c.Uin, + }) +} + func (bot *CQBot) memberJoinEvent(c *client.QQClient, e *client.MemberJoinGroupEvent) { log.Infof("新成员 %v 进入了群 %v.", formatMemberName(e.Member), formatGroupName(e.Group)) bot.dispatchEventMessage(bot.groupIncrease(e.Group.Code, 0, e.Member.Uin)) diff --git a/docs/cqhttp.md b/docs/cqhttp.md index 62e3440..46f1008 100644 --- a/docs/cqhttp.md +++ b/docs/cqhttp.md @@ -520,3 +520,20 @@ Type: `tts` | `sub_type` | string | `honor` | 提示类型 | | `user_id` | int64 | | 成员id | | `honor_type` | string | `talkative:龙王` `performer:群聊之火` `emotion:快乐源泉` | 荣誉类型 | + +#### 群成员名片更新 + +> 注意: 此事件不保证时效性,仅在收到消息时校验卡片 + +**上报数据** + +| 字段 | 类型 | 可能的值 | 说明 | +| ------------- | ------ | -------------- | -------------- | +| `post_type` | string | `notice` | 上报类型 | +| `notice_type` | string | `group_card` | 消息类型 | +| `group_id` | int64 | | 群号 | +| `user_id` | int64 | | 成员id | +| `card_new` | int64 | | 新名片 | +| `card_old` | int64 | | 旧名片 | + +> PS: 当名片为空时 `card_xx` 字段为空字符串, 并不是昵称 \ No newline at end of file