1
0
mirror of https://github.com/fumiama/NanoBot.git synced 2026-06-05 10:40:24 +08:00
Files
NanoBot/openapi_member.go
2023-10-13 00:36:03 +09:00

67 lines
2.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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: 消息撤回时间范围仅支持固定的天数371530。 特殊的时间范围:-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}))
}