FIX 获取联系人详情的时候该联系人信息未格式化

This commit is contained in:
eatmoreapple 2021-08-01 09:12:29 +08:00
parent 917be730bd
commit 8f09d7a509
3 changed files with 30 additions and 16 deletions

View File

@ -1,6 +1,7 @@
package openwechat package openwechat
import ( import (
"fmt"
"testing" "testing"
"time" "time"
) )
@ -110,3 +111,19 @@ func TestPinUser(t *testing.T) {
f.UnPin() f.UnPin()
} }
} }
func TestSender(t *testing.T) {
bot := DefaultBot(Desktop)
bot.MessageHandler = func(msg *Message) {
if msg.IsSendByGroup() {
fmt.Println(msg.SenderInGroup())
} else {
fmt.Println(msg.Sender())
}
}
if err := bot.Login(); err != nil {
t.Error(err)
return
}
bot.Block()
}

View File

@ -82,6 +82,7 @@ func (m *Message) SenderInGroup() (*User, error) {
if users == nil { if users == nil {
return nil, noSuchUserFoundError return nil, noSuchUserFoundError
} }
users.init(m.Bot.self)
return users.First(), nil return users.First(), nil
} }

28
user.go
View File

@ -90,8 +90,8 @@ func (u *User) Detail() (*User, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
newMembers.init(u.Self)
user := newMembers.First() user := newMembers.First()
user.Self = u.Self
return user, nil return user, nil
} }
@ -157,12 +157,7 @@ func (s *Self) updateMembers() error {
if err != nil { if err != nil {
return err return err
} }
members.SetOwner(s) members.init(s)
// 格式化emoji表情
for _, member := range members {
member.NickName = FormatEmoji(member.NickName)
member.RemarkName = FormatEmoji(member.RemarkName)
}
s.members = members s.members = members
return nil return nil
} }
@ -453,14 +448,6 @@ func (m Members) Last() *User {
return nil return nil
} }
// SetOwner 设置owner
// 请不要随意设置
func (m Members) SetOwner(s *Self) {
for _, member := range m {
member.Self = s
}
}
// SearchByUserName 根据用户名查找 // SearchByUserName 根据用户名查找
func (m Members) SearchByUserName(limit int, username string) (results Members) { func (m Members) SearchByUserName(limit int, username string) (results Members) {
return m.Search(limit, func(user *User) bool { return user.UserName == username }) return m.Search(limit, func(user *User) bool { return user.UserName == username })
@ -580,12 +567,21 @@ func (m Members) detail(self *Self) error {
newMembers = append(newMembers, nMembers...) newMembers = append(newMembers, nMembers...)
} }
if len(newMembers) > 0 { if len(newMembers) > 0 {
newMembers.SetOwner(self) newMembers.init(self)
self.members = newMembers self.members = newMembers
} }
return nil return nil
} }
func (m Members) init(self *Self) {
for _, member := range m {
member.Self = self
member.NickName = FormatEmoji(member.NickName)
member.RemarkName = FormatEmoji(member.RemarkName)
member.DisplayName = FormatEmoji(member.DisplayName)
}
}
// NewFriendHelper 这里为了兼容Desktop版本找不到文件传输助手的问题 // NewFriendHelper 这里为了兼容Desktop版本找不到文件传输助手的问题
// 文件传输助手的微信身份标识符永远是filehelper // 文件传输助手的微信身份标识符永远是filehelper
// 这种形式的对象可能缺少一些其他属性 // 这种形式的对象可能缺少一些其他属性