From 01233fa544457edf66764c3bfbc2937c1bd68f2a Mon Sep 17 00:00:00 2001 From: eatmoreapple Date: Wed, 7 Dec 2022 13:40:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=8F=91=E9=80=81=E9=A2=91=E7=B9=81=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E5=AF=BC=E8=87=B4=E6=93=8D=E4=BD=9C=E9=A2=91?= =?UTF-8?q?=E7=B9=81=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- message.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/message.go b/message.go index dcefb88..d734147 100644 --- a/message.go +++ b/message.go @@ -63,8 +63,17 @@ func (m *Message) Sender() (*User, error) { if m.FromUserName == m.Bot.self.User.UserName { return m.Bot.self.User, nil } - user := &User{Self: m.Bot.self, UserName: m.FromUserName} - err := user.Detail() + // 首先尝试从缓存里面查找, 如果没有找到则从服务器获取 + members, err := m.Bot.self.Members() + if err != nil { + return nil, err + } + user, exist := members.GetByRemarkName(m.FromUserName) + if !exist { + // 找不到, 从服务器获取 + user = &User{Self: m.Bot.self, UserName: m.FromUserName} + err = user.Detail() + } return user, err } @@ -86,9 +95,6 @@ func (m *Message) SenderInGroup() (*User, error) { if err != nil { return nil, err } - if err := group.Detail(); err != nil { - return nil, err - } if group.IsFriend() { return group, nil }