From 8f09d7a509b3f13a786fc6fdf4a2caf463abfa93 Mon Sep 17 00:00:00 2001 From: eatmoreapple <15055461510@163.com> Date: Sun, 1 Aug 2021 09:12:29 +0800 Subject: [PATCH] =?UTF-8?q?FIX=20=E8=8E=B7=E5=8F=96=E8=81=94=E7=B3=BB?= =?UTF-8?q?=E4=BA=BA=E8=AF=A6=E6=83=85=E7=9A=84=E6=97=B6=E5=80=99=E8=AF=A5?= =?UTF-8?q?=E8=81=94=E7=B3=BB=E4=BA=BA=E4=BF=A1=E6=81=AF=E6=9C=AA=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bot_test.go | 17 +++++++++++++++++ message.go | 1 + user.go | 28 ++++++++++++---------------- 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/bot_test.go b/bot_test.go index 8ad73be..461f95c 100644 --- a/bot_test.go +++ b/bot_test.go @@ -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() +} diff --git a/message.go b/message.go index 152fdbf..c5a5e2f 100644 --- a/message.go +++ b/message.go @@ -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 } diff --git a/user.go b/user.go index e44455c..e22cf44 100644 --- a/user.go +++ b/user.go @@ -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 // 这种形式的对象可能缺少一些其他属性