mirror of
https://github.com/eternnoir/pyTelegramBotAPI.git
synced 2023-08-10 21:12:57 +03:00
UPG: Add ChatPermissions, set_chat_permissions
This commit is contained in:
parent
a80927baf9
commit
a60253bf60
@ -547,9 +547,11 @@ class TeleBot:
|
|||||||
|
|
||||||
def get_chat_administrators(self, chat_id):
|
def get_chat_administrators(self, chat_id):
|
||||||
"""
|
"""
|
||||||
Use this method to get a list of administrators in a chat. On success, returns an Array of ChatMember objects
|
Use this method to get a list of administrators in a chat.
|
||||||
that contains information about all chat administrators except other bots.
|
On success, returns an Array of ChatMember objects that contains
|
||||||
:param chat_id:
|
information about all chat administrators except other bots.
|
||||||
|
:param chat_id: Unique identifier for the target chat or username
|
||||||
|
of the target supergroup or channel (in the format @channelusername)
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
result = apihelper.get_chat_administrators(self.token, chat_id)
|
result = apihelper.get_chat_administrators(self.token, chat_id)
|
||||||
@ -999,6 +1001,19 @@ class TeleBot:
|
|||||||
"""
|
"""
|
||||||
return apihelper.set_chat_administrator_custom_title(self.token, chat_id, user_id, custom_title)
|
return apihelper.set_chat_administrator_custom_title(self.token, chat_id, user_id, custom_title)
|
||||||
|
|
||||||
|
|
||||||
|
def set_chat_permissions(self, chat_id, permissions):
|
||||||
|
"""
|
||||||
|
Use this method to set default chat permissions for all members.
|
||||||
|
The bot must be an administrator in the group or a supergroup for this to work
|
||||||
|
and must have the can_restrict_members admin rights.
|
||||||
|
:param chat_id: Unique identifier for the target chat or username of the target supergroup
|
||||||
|
(in the format @supergroupusername)
|
||||||
|
:param permissions: New default chat permissions
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
return apihelper.set_chat_permissions(self.token, chat_id, permissions)
|
||||||
|
|
||||||
def export_chat_invite_link(self, chat_id):
|
def export_chat_invite_link(self, chat_id):
|
||||||
"""
|
"""
|
||||||
Use this method to export an invite link to a supergroup or a channel. The bot must be an administrator
|
Use this method to export an invite link to a supergroup or a channel. The bot must be an administrator
|
||||||
|
@ -620,6 +620,14 @@ def set_chat_administrator_custom_title(token, chat_id, user_id, custom_title):
|
|||||||
return _make_request(token, method_url, params=payload, method='post')
|
return _make_request(token, method_url, params=payload, method='post')
|
||||||
|
|
||||||
|
|
||||||
|
def set_chat_permissions(token, chat_id, permissions):
|
||||||
|
method_url = 'setChatPermissions'
|
||||||
|
payload = {
|
||||||
|
'chat_id': chat_id,
|
||||||
|
'permissions': _convert_list_json_serializable(permissions)}
|
||||||
|
return _make_request(token, method_url, params=payload, method='post')
|
||||||
|
|
||||||
|
|
||||||
def export_chat_invite_link(token, chat_id):
|
def export_chat_invite_link(token, chat_id):
|
||||||
method_url = 'exportChatInviteLink'
|
method_url = 'exportChatInviteLink'
|
||||||
payload = {'chat_id': chat_id}
|
payload = {'chat_id': chat_id}
|
||||||
|
@ -1062,6 +1062,62 @@ class ChatMember(JsonDeserializable):
|
|||||||
self.can_add_web_page_previews = can_add_web_page_previews
|
self.can_add_web_page_previews = can_add_web_page_previews
|
||||||
|
|
||||||
|
|
||||||
|
class ChatPermissions(JsonDeserializable, JsonSerializable, Dictionaryable):
|
||||||
|
def __init__(self, can_send_messages=None, can_send_media_messages=None,
|
||||||
|
can_send_polls=None, can_send_other_messages=None,
|
||||||
|
can_add_web_page_previews=None, can_change_info=None,
|
||||||
|
can_invite_users=None, can_pin_messages=None):
|
||||||
|
self.can_send_messages = can_send_messages
|
||||||
|
self.can_send_media_messages = can_send_media_messages
|
||||||
|
self.can_send_polls = can_send_polls
|
||||||
|
self.can_send_other_messages = can_send_other_messages
|
||||||
|
self.can_add_web_page_previews = can_add_web_page_previews
|
||||||
|
self.can_change_info = can_change_info
|
||||||
|
self.can_invite_users = can_invite_users
|
||||||
|
self.can_pin_messages = can_pin_messages
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def de_json(cls, json_string):
|
||||||
|
if json_string is None:
|
||||||
|
return json_string
|
||||||
|
obj = cls.check_json(json_string)
|
||||||
|
can_send_messages = obj.get('can_send_messages')
|
||||||
|
can_send_media_messages = obj.get('can_send_media_messages')
|
||||||
|
can_send_polls = obj.get('can_send_polls')
|
||||||
|
can_send_other_messages = obj.get('can_send_other_messages')
|
||||||
|
can_add_web_page_previews = obj.get('can_add_web_page_previews')
|
||||||
|
can_change_info = obj.get('can_change_info')
|
||||||
|
can_invite_users = obj.get('can_invite_users')
|
||||||
|
can_pin_messages = obj.get('can_pin_messages')
|
||||||
|
return cls(
|
||||||
|
can_send_messages, can_send_media_messages, can_send_polls,
|
||||||
|
can_send_other_messages, can_add_web_page_previews,
|
||||||
|
can_change_info, can_invite_users, can_pin_messages)
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
return json.dumps(self.to_dict())
|
||||||
|
|
||||||
|
def to_dict(self):
|
||||||
|
json_dict = dict()
|
||||||
|
if self.can_send_messages is not None:
|
||||||
|
json_dict['can_send_messages'] = self.can_send_messages
|
||||||
|
if self.can_send_media_messages is not None:
|
||||||
|
json_dict['can_send_media_messages'] = self.can_send_media_messages
|
||||||
|
if self.can_send_polls is not None:
|
||||||
|
json_dict['can_send_polls'] = self.can_send_polls
|
||||||
|
if self.can_send_other_messages is not None:
|
||||||
|
json_dict['can_send_other_messages'] = self.can_send_other_messages
|
||||||
|
if self.can_add_web_page_previews is not None:
|
||||||
|
json_dict['can_add_web_page_previews'] = self.can_add_web_page_previews
|
||||||
|
if self.can_change_info is not None:
|
||||||
|
json_dict['can_change_info'] = self.can_change_info
|
||||||
|
if self.can_invite_users is not None:
|
||||||
|
json_dict['can_invite_users'] = self.can_invite_users
|
||||||
|
if self.can_pin_messages is not None:
|
||||||
|
json_dict['can_pin_messages'] = self.can_pin_messages
|
||||||
|
return json_dict
|
||||||
|
|
||||||
|
|
||||||
class BotCommand(JsonSerializable):
|
class BotCommand(JsonSerializable):
|
||||||
def __init__(self, command, description):
|
def __init__(self, command, description):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user