mirror of
https://github.com/fumiama/NanoBot.git
synced 2026-06-05 02:30:23 +08:00
67 lines
2.6 KiB
Go
67 lines
2.6 KiB
Go
package nano
|
||
|
||
import "time"
|
||
|
||
// Member 成员对象 Member and MemberWithGuildID
|
||
//
|
||
// https://bot.q.qq.com/wiki/develop/api/openapi/member/model.html
|
||
type Member struct {
|
||
GuildID string `json:"guild_id"` // MemberWithGuildID only
|
||
User *User `json:"user"`
|
||
Nick string `json:"nick"`
|
||
Roles []string `json:"roles"`
|
||
JoinedAt time.Time `json:"joined_at"`
|
||
Deaf bool `json:"deaf"`
|
||
Mute bool `json:"mute"`
|
||
Pending bool `json:"pending"`
|
||
OpUserID string `json:"op_user_id"` // https://bot.q.qq.com/wiki/develop/api/gateway/guild_member.html#%E5%86%85%E5%AE%B9
|
||
}
|
||
|
||
// GetGuildMembersIn 获取 guild_id 指定的频道中所有成员的详情列表,支持分页
|
||
//
|
||
// https://bot.q.qq.com/wiki/develop/api/openapi/member/get_members.html
|
||
func (bot *Bot) GetGuildMembersIn(id, after string, limit uint32) (members []Member, err error) {
|
||
err = bot.GetOpenAPI(WriteHTTPQueryIfNotNil("/guilds/"+id+"/members",
|
||
"after", after,
|
||
"limit", limit,
|
||
), "", &members)
|
||
return
|
||
}
|
||
|
||
// RoleMembers 频道身份组成员列表
|
||
//
|
||
// https://bot.q.qq.com/wiki/develop/api/openapi/member/get_role_members.html#%E8%BF%94%E5%9B%9E
|
||
type RoleMembers struct {
|
||
Data []Member `json:"data"`
|
||
Next string `json:"next"`
|
||
}
|
||
|
||
// GetRoleMembersOf 获取 guild_id 频道中指定role_id身份组下所有成员的详情列表,支持分页
|
||
//
|
||
// https://bot.q.qq.com/wiki/develop/api/openapi/member/get_role_members.html
|
||
func (bot *Bot) GetRoleMembersOf(guildid, roleid, startindex string, limit uint32) (*RoleMembers, error) {
|
||
return bot.getOpenAPIofRoleMembers(WriteHTTPQueryIfNotNil("/guilds/"+guildid+"/roles/"+roleid+"/members",
|
||
"start_index", startindex,
|
||
"limit", limit,
|
||
))
|
||
}
|
||
|
||
// GetGuildMemberOf 获取 guild_id 指定的频道中 user_id 对应成员的详细信息
|
||
//
|
||
// https://bot.q.qq.com/wiki/develop/api/openapi/member/get_member.html
|
||
func (bot *Bot) GetGuildMemberOf(guildid, userid string) (*Member, error) {
|
||
return bot.getOpenAPIofMember("/guilds/" + guildid + "/members/" + userid)
|
||
}
|
||
|
||
// DeleteGuildMemberOf 删除 guild_id 指定的频道下的成员 user_id
|
||
//
|
||
// https://bot.q.qq.com/wiki/develop/api/openapi/member/delete_member.html
|
||
//
|
||
// - delhistmsgdays: 消息撤回时间范围仅支持固定的天数:3,7,15,30。 特殊的时间范围:-1: 撤回全部消息。默认值为0不撤回任何消息。
|
||
func (bot *Bot) DeleteGuildMemberOf(guildid, userid string, addblklst bool, delhistmsgdays int) error {
|
||
return bot.DeleteOpenAPI("/guilds/"+guildid+"/members/"+userid, "", WriteBodyFromJSON(&struct {
|
||
A bool `json:"add_blacklist"`
|
||
D int `json:"delete_history_msg_days"`
|
||
}{addblklst, delhistmsgdays}))
|
||
}
|