Merge pull request #135 from eatmoreapple/fix-opt-too-often

修复频繁获取消息发送者获取详情导致  too often 的问题
This commit is contained in:
多吃点苹果 2022-12-07 13:42:13 +08:00 committed by GitHub
commit 3d22c239d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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
}