From ed2c08f5ee1bed04cbfda9112be323e0a57b25ca Mon Sep 17 00:00:00 2001 From: cdle <798731886@qq.com> Date: Sat, 18 Sep 2021 11:24:33 +0800 Subject: [PATCH] update --- im/qq/main.go | 6 ++++++ im/qq/sender.go | 26 +++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/im/qq/main.go b/im/qq/main.go index bbc8505..5d51227 100644 --- a/im/qq/main.go +++ b/im/qq/main.go @@ -224,6 +224,11 @@ func start() { c.MarkPrivateMessageReaded(m.Sender.Uin, int64(m.Time)) } } + onTempMessage := func(c *client.QQClient, e *client.TempMessageEvent) { + core.Senders <- &Sender{ + Message: e.Message, + } + } OnGroupMessage := func(_ *client.QQClient, m *message.GroupMessage) { core.Senders <- &Sender{ Message: m, @@ -231,6 +236,7 @@ func start() { } bot.Client.OnPrivateMessage(onPrivateMessage) bot.Client.OnGroupMessage(OnGroupMessage) + bot.Client.OnTempMessage(onTempMessage) if qq.Get("onself", "true") == "true" { bot.Client.OnSelfPrivateMessage(onPrivateMessage) bot.Client.OnSelfGroupMessage(OnGroupMessage) diff --git a/im/qq/sender.go b/im/qq/sender.go index 8d7a21e..5fa1555 100644 --- a/im/qq/sender.go +++ b/im/qq/sender.go @@ -25,6 +25,8 @@ func (sender *Sender) GetContent() string { switch sender.Message.(type) { case *message.PrivateMessage: text = coolq.ToStringMessage(sender.Message.(*message.PrivateMessage).Elements, 0, true) + case *message.TempMessage: + text = coolq.ToStringMessage(sender.Message.(*message.TempMessage).Elements, 0, true) case *message.GroupMessage: m := sender.Message.(*message.GroupMessage) text = coolq.ToStringMessage(m.Elements, m.GroupCode, true) @@ -37,6 +39,8 @@ func (sender *Sender) GetUserID() int { switch sender.Message.(type) { case *message.PrivateMessage: id = int(sender.Message.(*message.PrivateMessage).Sender.Uin) + case *message.TempMessage: + id = int(sender.Message.(*message.TempMessage).Sender.Uin) case *message.GroupMessage: id = int(sender.Message.(*message.GroupMessage).Sender.Uin) } @@ -46,7 +50,6 @@ func (sender *Sender) GetUserID() int { func (sender *Sender) GetChatID() int { id := 0 switch sender.Message.(type) { - case *message.PrivateMessage: case *message.GroupMessage: id = int(sender.Message.(*message.GroupMessage).GroupCode) } @@ -62,6 +65,8 @@ func (sender *Sender) GetMessageID() int { switch sender.Message.(type) { case *message.PrivateMessage: id = int(sender.Message.(*message.PrivateMessage).Id) + case *message.TempMessage: + id = int(sender.Message.(*message.TempMessage).Id) case *message.GroupMessage: id = int(sender.Message.(*message.GroupMessage).Id) } @@ -73,6 +78,8 @@ func (sender *Sender) GetUsername() string { switch sender.Message.(type) { case *message.PrivateMessage: name = sender.Message.(*message.PrivateMessage).Sender.Nickname + case *message.TempMessage: + name = sender.Message.(*message.TempMessage).Sender.Nickname case *message.GroupMessage: name = sender.Message.(*message.GroupMessage).Sender.Nickname } @@ -129,6 +136,8 @@ func (sender *Sender) IsAdmin() bool { if m.Target == m.Sender.Uin { return true } + case *message.TempMessage: + return false case *message.GroupMessage: m := sender.Message.(*message.GroupMessage) sid = m.Sender.Uin @@ -158,6 +167,21 @@ func (sender *Sender) Reply(msgs ...interface{}) error { if content != "" { bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&message.TextElement{Content: content}}}) } + case *message.TempMessage: + m := sender.Message.(*message.TempMessage) + content := "" + switch msg.(type) { + case string: + content = msg.(string) + case []byte: + content = string(msg.([]byte)) + case *http.Response: + data, _ := ioutil.ReadAll(msg.(*http.Response).Body) + bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&coolq.LocalImageElement{Stream: bytes.NewReader(data)}}}) + } + if content != "" { + bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&message.TextElement{Content: content}}}) + } case *message.GroupMessage: var id int32 m := sender.Message.(*message.GroupMessage)