Added the field can_manage_topics

This commit is contained in:
katant 2022-11-06 07:48:18 +10:00
parent c802e2f27a
commit e2cc8ef8c1
7 changed files with 22 additions and 3 deletions

View file

@ -1450,7 +1450,7 @@ class PromoteChatMember(BaseResponse):
__slots__ = ('chat_id', 'user_id', 'can_change_info', 'can_post_messages', 'can_edit_messages',
'can_delete_messages', 'can_invite_users', 'can_restrict_members', 'can_pin_messages',
'can_promote_members')
'can_manage_topics', 'can_promote_members')
method = api.Methods.PROMOTE_CHAT_MEMBER
@ -1463,6 +1463,7 @@ class PromoteChatMember(BaseResponse):
can_invite_users: Optional[Boolean] = None,
can_restrict_members: Optional[Boolean] = None,
can_pin_messages: Optional[Boolean] = None,
can_manage_topics: Optional[Boolean] = None,
can_promote_members: Optional[Boolean] = None):
"""
:param chat_id: Union[Integer, String] - Unique identifier for the target chat
@ -1477,6 +1478,8 @@ class PromoteChatMember(BaseResponse):
:param can_invite_users: Boolean - Pass True, if the administrator can invite new users to the chat
:param can_restrict_members: Boolean - Pass True, if the administrator can restrict, ban or unban chat members
:param can_pin_messages: Boolean - Pass True, if the administrator can pin messages, supergroups only
:param can_manage_topics: Boolean - Pass True if the user is allowed to create, rename, close, and reopen forum
topics, supergroups only
:param can_promote_members: Boolean - Pass True, if the administrator can add new administrators
with a subset of his own privileges or demote administrators that he has promoted,
directly or indirectly (promoted by administrators that were appointed by him)
@ -1490,6 +1493,7 @@ class PromoteChatMember(BaseResponse):
self.can_invite_users = can_invite_users
self.can_restrict_members = can_restrict_members
self.can_pin_messages = can_pin_messages
self.can_manage_topics = can_manage_topics
self.can_promote_members = can_promote_members
def prepare(self):
@ -1503,6 +1507,7 @@ class PromoteChatMember(BaseResponse):
'can_invite_users': self.can_invite_users,
'can_restrict_members': self.can_restrict_members,
'can_pin_messages': self.can_pin_messages,
'can_manage_topics': self.can_manage_topics,
'can_promote_members': self.can_promote_members
}

View file

@ -19,6 +19,7 @@ class ChatAdministratorRights(base.TelegramObject):
can_post_messages: base.Boolean = fields.Field()
can_edit_messages: base.Boolean = fields.Field()
can_pin_messages: base.Boolean = fields.Field()
can_manage_topics: base.Boolean = fields.Field()
def __init__(self,
is_anonymous: base.Boolean = None,
@ -31,7 +32,8 @@ class ChatAdministratorRights(base.TelegramObject):
can_invite_users: base.Boolean = None,
can_post_messages: base.Boolean = None,
can_edit_messages: base.Boolean = None,
can_pin_messages: base.Boolean = None):
can_pin_messages: base.Boolean = None,
can_manage_topics: base.Boolean = None):
super(ChatAdministratorRights, self).__init__(
is_anonymous=is_anonymous,
can_manage_chat=can_manage_chat,
@ -43,4 +45,5 @@ class ChatAdministratorRights(base.TelegramObject):
can_invite_users=can_invite_users,
can_post_messages=can_post_messages,
can_edit_messages=can_edit_messages,
can_pin_messages=can_pin_messages)
can_pin_messages=can_pin_messages,
can_manage_topics=can_manage_topics)

View file

@ -135,6 +135,7 @@ class ChatMemberOwner(ChatMember):
can_change_info: base.Boolean = fields.ConstField(True)
can_invite_users: base.Boolean = fields.ConstField(True)
can_pin_messages: base.Boolean = fields.ConstField(True)
can_manage_topics: base.Boolean = fields.ConstField(True)
class ChatMemberAdministrator(ChatMember):
@ -159,6 +160,7 @@ class ChatMemberAdministrator(ChatMember):
can_change_info: base.Boolean = fields.Field()
can_invite_users: base.Boolean = fields.Field()
can_pin_messages: base.Boolean = fields.Field()
can_manage_topics: base.Boolean = fields.Field()
class ChatMemberMember(ChatMember):
@ -185,6 +187,7 @@ class ChatMemberRestricted(ChatMember):
can_change_info: base.Boolean = fields.Field()
can_invite_users: base.Boolean = fields.Field()
can_pin_messages: base.Boolean = fields.Field()
can_manage_topics: base.Boolean = fields.Field()
can_send_messages: base.Boolean = fields.Field()
can_send_media_messages: base.Boolean = fields.Field()
can_send_polls: base.Boolean = fields.Field()

View file

@ -16,6 +16,7 @@ class ChatPermissions(base.TelegramObject):
can_change_info: base.Boolean = fields.Field()
can_invite_users: base.Boolean = fields.Field()
can_pin_messages: base.Boolean = fields.Field()
can_manage_topics: base.Boolean = fields.Field()
def __init__(self,
can_send_messages: base.Boolean = None,
@ -26,6 +27,7 @@ class ChatPermissions(base.TelegramObject):
can_change_info: base.Boolean = None,
can_invite_users: base.Boolean = None,
can_pin_messages: base.Boolean = None,
can_manage_topics: base.Boolean = None,
**kwargs):
super(ChatPermissions, self).__init__(
can_send_messages=can_send_messages,
@ -36,4 +38,5 @@ class ChatPermissions(base.TelegramObject):
can_change_info=can_change_info,
can_invite_users=can_invite_users,
can_pin_messages=can_pin_messages,
can_manage_topics=can_manage_topics,
)

View file

@ -64,6 +64,7 @@ class Message(base.TelegramObject):
forward_from_message_id: base.Integer = fields.Field()
forward_signature: base.String = fields.Field()
forward_date: datetime.datetime = fields.DateTimeField()
is_topic_message: base.Boolean = fields.Field()
is_automatic_forward: base.Boolean = fields.Field()
reply_to_message: Message = fields.Field(base="Message")
via_bot: User = fields.Field(base=User)

View file

@ -61,6 +61,7 @@ CHAT_MEMBER = {
"can_promote_members": False,
"can_manage_voice_chats": True, # Deprecated
"can_manage_video_chats": True,
"can_manage_topics": True,
"is_anonymous": False,
}

View file

@ -41,6 +41,9 @@ def test_privileges():
assert isinstance(chat_member.can_promote_members, bool)
assert chat_member.can_promote_members == CHAT_MEMBER['can_promote_members']
assert isinstance(chat_member.can_manage_topics, bool)
assert chat_member.can_manage_topics == CHAT_MEMBER['can_manage_topics']
def test_int():
assert int(chat_member) == chat_member.user.id