admin: update admin-related methods and types

pull/271/head
Demian 4 years ago
parent a96aa24503
commit 993437ee5a

@ -10,43 +10,68 @@ import (
// Rights is a list of privileges available to chat members.
type Rights struct {
CanBeEdited bool `json:"can_be_edited,omitempty"` // 1
CanChangeInfo bool `json:"can_change_info,omitempty"` // 2
CanPostMessages bool `json:"can_post_messages,omitempty"` // 3
CanEditMessages bool `json:"can_edit_messages,omitempty"` // 4
CanDeleteMessages bool `json:"can_delete_messages,omitempty"` // 5
CanInviteUsers bool `json:"can_invite_users,omitempty"` // 6
CanRestrictMembers bool `json:"can_restrict_members,omitempty"` // 7
CanPinMessages bool `json:"can_pin_messages,omitempty"` // 8
CanPromoteMembers bool `json:"can_promote_members,omitempty"` // 9
CanSendMessages bool `json:"can_send_messages,omitempty"` // 10
CanSendMedia bool `json:"can_send_media_messages,omitempty"` // 11
CanSendOther bool `json:"can_send_other_messages,omitempty"` // 12
CanAddPreviews bool `json:"can_add_web_page_previews,omitempty"` // 13
CanBeEdited bool `json:"can_be_edited,omitempty"`
CanChangeInfo bool `json:"can_change_info,omitempty"`
CanPostMessages bool `json:"can_post_messages,omitempty"`
CanEditMessages bool `json:"can_edit_messages,omitempty"`
CanDeleteMessages bool `json:"can_delete_messages,omitempty"`
CanInviteUsers bool `json:"can_invite_users,omitempty"`
CanRestrictMembers bool `json:"can_restrict_members,omitempty"`
CanPinMessages bool `json:"can_pin_messages,omitempty"`
CanPromoteMembers bool `json:"can_promote_members,omitempty"`
CanSendMessages bool `json:"can_send_messages,omitempty"`
CanSendMedia bool `json:"can_send_media_messages,omitempty"`
CanSendPolls bool `json:"can_send_polls,omitempty"`
CanSendOther bool `json:"can_send_other_messages,omitempty"`
CanAddPreviews bool `json:"can_add_web_page_previews,omitempty"`
}
// NoRights is the default Rights{}
// NoRights is the default Rights{}.
func NoRights() Rights { return Rights{} }
// NoRestrictions should be used when un-restricting or
// un-promoting user.
//
// member.Rights = NoRestrictions()
// member.Rights = tb.NoRestrictions()
// bot.Restrict(chat, member)
//
func NoRestrictions() Rights {
return Rights{
true, false, false, false, false, // 1-5
false, false, false, false, true, // 6-10
true, true, true}
CanBeEdited: true,
CanChangeInfo: false,
CanPostMessages: false,
CanEditMessages: false,
CanDeleteMessages: false,
CanInviteUsers: false,
CanRestrictMembers: false,
CanPinMessages: false,
CanPromoteMembers: false,
CanSendMessages: true,
CanSendMedia: true,
CanSendPolls: true,
CanSendOther: true,
CanAddPreviews: true,
}
}
// AdminRights could be used to promote user to admin.
func AdminRights() Rights {
return Rights{
true, true, true, true, true, // 1-5
true, true, true, true, true, // 6-10
true, true, true} // 11-13
CanBeEdited: true,
CanChangeInfo: true,
CanPostMessages: true,
CanEditMessages: true,
CanDeleteMessages: true,
CanInviteUsers: true,
CanRestrictMembers: true,
CanPinMessages: true,
CanPromoteMembers: true,
CanSendMessages: true,
CanSendMedia: true,
CanSendPolls: true,
CanSendOther: true,
CanAddPreviews: true,
}
}
// Forever is a Unixtime of "forever" banning.
@ -85,7 +110,7 @@ func (b *Bot) Unban(chat *Chat, user *User) error {
return extractOk(data)
}
// Restrict let's you restrict a subset of member's rights until
// Restrict lets you restrict a subset of member's rights until
// member.RestrictedUntil, such as:
//
// * can send messages
@ -141,7 +166,7 @@ func (b *Bot) Promote(chat *Chat, member *ChatMember) error {
return extractOk(data)
}
// AdminsOf return a member list of chat admins.
// AdminsOf returns a member list of chat admins.
//
// On success, returns an Array of ChatMember objects that
// contains information about all chat administrators except other bots.
@ -175,7 +200,7 @@ func (b *Bot) AdminsOf(chat *Chat) ([]ChatMember, error) {
return resp.Result, nil
}
// Len return the number of members in a chat.
// Len returns the number of members in a chat.
func (b *Bot) Len(chat *Chat) (int, error) {
params := map[string]string{
"chat_id": chat.Recipient(),
@ -203,3 +228,20 @@ func (b *Bot) Len(chat *Chat) (int, error) {
return resp.Result, nil
}
// SetAdminTitle sets a custom title for an administrator.
// A title should be 0-16 characters length, emoji are not allowed.
func (b *Bot) SetAdminTitle(chat *Chat, user *User, title string) error {
params := map[string]string{
"chat_id": chat.Recipient(),
"user_id": user.Recipient(),
"custom_title": title,
}
data, err := b.Raw("setChatAdministratorCustomTitle", params)
if err != nil {
return err
}
return extractOk(data)
}

Loading…
Cancel
Save