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
import (
"fmt"
"testing"
"time"
)
@ -110,3 +111,19 @@ func TestPinUser(t *testing.T) {
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 {
return nil, noSuchUserFoundError
}
users.init(m.Bot.self)
return users.First(), nil
}

28
user.go
View File

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