Skip to content

Commit a319e10

Browse files
author
anezhou
committed
支持发送设置引导消息 (merge request !45)
Squash merge branch 'feature_20220411_anezhou_msgsettingguide_story_873602243' into 'master' TAPD: --story=873602243
1 parent b208053 commit a319e10

File tree

5 files changed

+60
-0
lines changed

5 files changed

+60
-0
lines changed

dto/message_create.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,15 @@ type MarkdownParams struct {
3535
type Keyboard struct {
3636
ID string `json:"id"`
3737
}
38+
39+
// SettingGuideToCreate 发送引导消息的结构体
40+
type SettingGuideToCreate struct {
41+
Content string `json:"content,omitempty"` // 频道内发引导消息可以带@
42+
SettingGuide *SettingGuide `json:"setting_guide,omitempty"` // 设置引导
43+
}
44+
45+
// SettingGuide 设置引导
46+
type SettingGuide struct {
47+
// 频道ID, 当通过私信发送设置引导消息时,需要指定guild_id
48+
GuildID string `json:"guild_id"`
49+
}

openapi/iface.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ type MessageAPI interface {
7070
PatchMessage(ctx context.Context,
7171
channelID string, messageID string, msg *dto.MessageToCreate) (*dto.Message, error)
7272
RetractMessage(ctx context.Context, channelID, msgID string, options ...RetractMessageOption) error
73+
// PostSettingGuide 发送设置引导
74+
PostSettingGuide(ctx context.Context, channelID string, atUserIDs []string) (*dto.Message, error)
7375
}
7476

7577
// GuildAPI guild 相关接口
@@ -151,6 +153,8 @@ type DirectMessageAPI interface {
151153
PostDirectMessage(ctx context.Context, dm *dto.DirectMessage, msg *dto.MessageToCreate) (*dto.Message, error)
152154
// RetractDMMessage 撤回私信频道消息
153155
RetractDMMessage(ctx context.Context, guildID, msgID string, options ...RetractMessageOption) error
156+
// PostDMSettingGuide 发送私信设置引导, jumpGuildID为设置引导要跳转的频道ID
157+
PostDMSettingGuide(ctx context.Context, dm *dto.DirectMessage, jumpGuildID string) (*dto.Message, error)
154158
}
155159

156160
// AnnouncesAPI 公告相关接口

openapi/v1/direct_message.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,22 @@ func (o *openAPI) RetractDMMessage(ctx context.Context,
4747
_, err := request.Delete(o.getURL(dmsMessageURI))
4848
return err
4949
}
50+
51+
// PostDMSettingGuide 发送私信设置引导, jumpGuildID为设置引导要跳转的频道ID
52+
func (o *openAPI) PostDMSettingGuide(ctx context.Context,
53+
dm *dto.DirectMessage, jumpGuildID string) (*dto.Message, error) {
54+
msg := &dto.SettingGuideToCreate{
55+
SettingGuide: &dto.SettingGuide{
56+
GuildID: jumpGuildID,
57+
},
58+
}
59+
resp, err := o.request(ctx).
60+
SetResult(dto.Message{}).
61+
SetPathParam("guild_id", dm.GuildID).
62+
SetBody(msg).
63+
Post(o.getURL(dmSettingGuideURI))
64+
if err != nil {
65+
return nil, err
66+
}
67+
return resp.Result().(*dto.Message), nil
68+
}

openapi/v1/message.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package v1
33
import (
44
"context"
55
"encoding/json"
6+
"fmt"
67

78
"github.com/tencent-connect/botgo/dto"
89
"github.com/tencent-connect/botgo/errs"
@@ -97,3 +98,24 @@ func (o *openAPI) RetractMessage(ctx context.Context,
9798
_, err := request.Delete(o.getURL(messageURI))
9899
return err
99100
}
101+
102+
// PostSettingGuide 发送设置引导消息, atUserID为要at的用户
103+
func (o *openAPI) PostSettingGuide(ctx context.Context,
104+
channelID string, atUserIDs []string) (*dto.Message, error) {
105+
var content string
106+
for _, userID := range atUserIDs {
107+
content += fmt.Sprintf("<@%s>", userID)
108+
}
109+
msg := &dto.SettingGuideToCreate{
110+
Content: content,
111+
}
112+
resp, err := o.request(ctx).
113+
SetResult(dto.Message{}).
114+
SetPathParam("channel_id", channelID).
115+
SetBody(msg).
116+
Post(o.getURL(settingGuideURI))
117+
if err != nil {
118+
return nil, err
119+
}
120+
return resp.Result().(*dto.Message), nil
121+
}

openapi/v1/resource.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ const (
7070
messageSettingURI uri = "/guilds/{guild_id}/message/setting"
7171

7272
voiceChannelMembersURI uri = "/channels/{channel_id}/voice/members"
73+
74+
settingGuideURI uri = "/channels/{channel_id}/settingguide"
75+
dmSettingGuideURI uri = "/dms/{guild_id}/settingguide"
7376
)
7477

7578
// getURL 获取接口地址,会处理沙箱环境判断

0 commit comments

Comments
 (0)