diff --git a/bot.go b/bot.go index 6d2af6c..f57c88b 100644 --- a/bot.go +++ b/bot.go @@ -115,6 +115,7 @@ func (b *Bot) Login() error { } } +// 用户退出 func (b *Bot) Logout() error { if b.Alive() { info := b.storage.LoginInfo diff --git a/bot_test.go b/bot_test.go index 43e2f4a..3c484c8 100644 --- a/bot_test.go +++ b/bot_test.go @@ -236,3 +236,22 @@ func TestHotLogin(t *testing.T) { } t.Log(self.NickName) } + +func TestFriendHelper(t *testing.T) { + bot := defaultBot(Desktop) + if err := bot.Login(); err != nil { + t.Error(err) + return + } + self, err := bot.GetCurrentUser() + if err != nil { + t.Error(err) + return + } + fh, err := self.FileHelper() + if err != nil { + t.Error(err) + return + } + fh.SendText("test message") +} diff --git a/user.go b/user.go index 937c3b1..7575263 100644 --- a/user.go +++ b/user.go @@ -176,7 +176,7 @@ func (s *Self) FileHelper() (*Friend, error) { } users := members.SearchByUserName(1, "filehelper") if users == nil { - return nil, noSuchUserFoundError + return NewFriendHelper(s), nil } s.fileHelper = &Friend{users.First()} return s.fileHelper, nil @@ -524,3 +524,11 @@ func (m Members) Search(limit int, condFuncList ...func(user *User) bool) (resul } return } + +// 这里为了兼容Desktop版本找不到文件传输助手的问题 +// 文件传输助手的微信身份标识符永远是filehelper +// 这种形式的对象可能缺少一些其他属性 +// 但是不影响发送信息的功能 +func NewFriendHelper(self *Self) *Friend { + return &Friend{&User{UserName: "filehelper", Self: self}} +}