Skip to content

Commit 9add9a0

Browse files
committed
兼容单独拉取 message 时候返回数据多一层 message id 的情况
--issue=25
1 parent addf971 commit 9add9a0

File tree

4 files changed

+71
-51
lines changed

4 files changed

+71
-51
lines changed

examples/apitest/main_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ var api openapi.OpenAPI
2323

2424
var (
2525
testGuildID = "3326534247441079828" // replace your guild id
26-
testChannelID = "1513270" // replace your channel id
26+
testChannelID = "1595028" // replace your channel id
2727
testMessageID = `08e092eeb983afef9e0110f9bb5d1a1231343431313532313836373838333234303420801e
2828
28003091c4bb02380c400c48d8a7928d06` // replace your channel id
2929
testRolesID = `10054557` // replace your roles id

examples/apitest/message_test.go

Lines changed: 60 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package apitest
22

33
import (
4+
"fmt"
45
"testing"
56

67
"github.com/tencent-connect/botgo/dto"
@@ -80,6 +81,9 @@ func TestMessage(t *testing.T) {
8081
}
8182
t.Log(message.ID, message.Author.Username, message.Timestamp)
8283
}
84+
85+
message, err := api.Message(ctx, testChannelID, index[0])
86+
fmt.Println(message)
8387
},
8488
)
8589
}
@@ -100,13 +104,15 @@ func TestRetractMessage(t *testing.T) {
100104
func TestMessageReference(t *testing.T) {
101105
t.Run(
102106
"引用消息", func(t *testing.T) {
103-
message, err := api.PostMessage(ctx, testChannelID, &dto.MessageToCreate{
104-
Content: "文本引用消息",
105-
MessageReference: &dto.MessageReference{
106-
MessageID: testMessageID,
107-
IgnoreGetMessageError: false,
107+
message, err := api.PostMessage(
108+
ctx, testChannelID, &dto.MessageToCreate{
109+
Content: "文本引用消息",
110+
MessageReference: &dto.MessageReference{
111+
MessageID: testMessageID,
112+
IgnoreGetMessageError: false,
113+
},
108114
},
109-
})
115+
)
110116
if err != nil {
111117
t.Error(err)
112118
}
@@ -118,33 +124,35 @@ func TestMessageReference(t *testing.T) {
118124
func TestMarkdownMessage(t *testing.T) {
119125
t.Run(
120126
"markdown 消息", func(t *testing.T) {
121-
message, err := api.PostMessage(ctx, testChannelID, &dto.MessageToCreate{
122-
Markdown: &dto.Markdown{
123-
TemplateID: testMarkdownTemplateID,
124-
Params: []*dto.MarkdownParams{
125-
{
126-
Key: "title",
127-
Values: []string{"标题"},
128-
},
129-
{
130-
Key: "slice",
131-
Values: []string{"1", "频道名称<#1146349>", "3"},
132-
},
133-
{
134-
Key: "image",
135-
Values: []string{"https://pub.idqqimg.com/pc/misc/files/20191015/32ed5b691a1138ac452a59e42f3f83b5.png"},
136-
},
137-
{
138-
Key: "link",
139-
Values: []string{"[🔗我的收藏夹](qq.com)"},
140-
},
141-
{
142-
Key: "desc",
143-
Values: []string{"简介"},
127+
message, err := api.PostMessage(
128+
ctx, testChannelID, &dto.MessageToCreate{
129+
Markdown: &dto.Markdown{
130+
TemplateID: testMarkdownTemplateID,
131+
Params: []*dto.MarkdownParams{
132+
{
133+
Key: "title",
134+
Values: []string{"标题"},
135+
},
136+
{
137+
Key: "slice",
138+
Values: []string{"1", "频道名称<#1146349>", "3"},
139+
},
140+
{
141+
Key: "image",
142+
Values: []string{"https://pub.idqqimg.com/pc/misc/files/20191015/32ed5b691a1138ac452a59e42f3f83b5.png"},
143+
},
144+
{
145+
Key: "link",
146+
Values: []string{"[🔗我的收藏夹](qq.com)"},
147+
},
148+
{
149+
Key: "desc",
150+
Values: []string{"简介"},
151+
},
144152
},
145153
},
146154
},
147-
})
155+
)
148156
if err != nil {
149157
t.Error(err)
150158
}
@@ -156,9 +164,11 @@ func TestMarkdownMessage(t *testing.T) {
156164
func TestContentMessage(t *testing.T) {
157165
t.Run(
158166
"content 消息", func(t *testing.T) {
159-
message, err := api.PostMessage(ctx, testChannelID, &dto.MessageToCreate{
160-
Content: "文本消息",
161-
})
167+
message, err := api.PostMessage(
168+
ctx, testChannelID, &dto.MessageToCreate{
169+
Content: "文本消息",
170+
},
171+
)
162172
if err != nil {
163173
t.Error(err)
164174
}
@@ -170,24 +180,26 @@ func TestContentMessage(t *testing.T) {
170180
func TestPatchMessage(t *testing.T) {
171181
t.Run(
172182
"修改消息", func(t *testing.T) {
173-
message, err := api.PatchMessage(ctx, testChannelID, testMessageID, &dto.MessageToCreate{
174-
Keyboard: &dto.Keyboard{
175-
ID: "62",
176-
},
177-
Markdown: &dto.Markdown{
178-
TemplateID: 65,
179-
Params: []*dto.MarkdownParams{
180-
{
181-
Key: "title",
182-
Values: []string{"标题"},
183-
},
184-
{
185-
Key: "content",
186-
Values: []string{"内容"},
183+
message, err := api.PatchMessage(
184+
ctx, testChannelID, testMessageID, &dto.MessageToCreate{
185+
Keyboard: &dto.Keyboard{
186+
ID: "62",
187+
},
188+
Markdown: &dto.Markdown{
189+
TemplateID: 65,
190+
Params: []*dto.MarkdownParams{
191+
{
192+
Key: "title",
193+
Values: []string{"标题"},
194+
},
195+
{
196+
Key: "content",
197+
Values: []string{"内容"},
198+
},
187199
},
188200
},
189201
},
190-
})
202+
)
191203
if err != nil {
192204
t.Error(err)
193205
}

examples/apitest/role_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ func Test_role(t *testing.T) {
7474

7575
func Test_roleWithMember(t *testing.T) {
7676
var roleID dto.RoleID
77-
var err error
7877

7978
t.Run(
8079
"添加人到身份组", func(t *testing.T) {

openapi/v1/message.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/tencent-connect/botgo/dto"
88
"github.com/tencent-connect/botgo/errs"
99
"github.com/tencent-connect/botgo/openapi"
10+
"github.com/tidwall/gjson"
1011
)
1112

1213
// Message 拉取单条消息
@@ -20,7 +21,15 @@ func (o *openAPI) Message(ctx context.Context, channelID string, messageID strin
2021
return nil, err
2122
}
2223

23-
return resp.Result().(*dto.Message), nil
24+
// 兼容处理
25+
result := resp.Result().(*dto.Message)
26+
if result.ID == "" {
27+
body := gjson.Get(resp.String(), "message")
28+
if err := json.Unmarshal([]byte(body.String()), result); err != nil {
29+
return nil, err
30+
}
31+
}
32+
return result, nil
2433
}
2534

2635
// Messages 拉取消息列表

0 commit comments

Comments
 (0)