修复Reply返回的SentMessage撤回消息引发的空指针问题

This commit is contained in:
eatMoreApple 2021-08-03 11:28:00 +08:00
parent d36e8dde66
commit 95a4a4d188

View File

@ -126,7 +126,12 @@ func (m *Message) Reply(msgType MessageType, content, mediaId string) (*SentMess
msg := NewSendMessage(msgType, content, m.Bot.self.User.UserName, m.FromUserName, mediaId)
info := m.Bot.Storage.LoginInfo
request := m.Bot.Storage.Request
return m.Bot.Caller.WebWxSendMsg(msg, info, request)
sentMessage, err := m.Bot.Caller.WebWxSendMsg(msg, info, request)
if err != nil {
return nil, err
}
sentMessage.Self = m.Bot.self
return sentMessage, nil
}
// ReplyText 回复文本消息
@ -491,6 +496,16 @@ func (s *SentMessage) Revoke() error {
return s.Self.RevokeMessage(s)
}
// CanRevoke 是否可以撤回该消息
func (s *SentMessage) CanRevoke() bool {
i, err := strconv.ParseInt(s.ClientMsgId, 10, 64)
if err != nil {
return false
}
start := time.Unix(i/10000000, 0)
return time.Now().Sub(start) < time.Minute*2
}
// ForwardToFriends 转发该消息给好友
func (s *SentMessage) ForwardToFriends(friends ...*Friend) error {
return s.Self.ForwardMessageToFriends(s, friends...)