Added the ability to get the current bot short description in the given language as the class BotShortDescription using the method getMyShortDescription.

This commit is contained in:
coder2020official 2023-03-11 15:46:35 +04:00
parent 9b81a29a6a
commit 09e4a2a437
5 changed files with 64 additions and 1 deletions

View File

@ -3449,6 +3449,19 @@ class TeleBot:
"""
return apihelper.set_my_short_description(self.token, short_description, language_code)
def get_my_short_description(self, language_code: Optional[str]=None):
"""
Use this method to get the current bot short description for the given user language.
Returns BotShortDescription on success.
:param language_code: A two-letter ISO 639-1 language code or an empty string
:type language_code: :obj:`str`
:return: :class:`telebot.types.BotShortDescription`
"""
return types.BotShortDescription.de_json(apihelper.get_my_short_description(self.token, language_code))
def set_chat_menu_button(self, chat_id: Union[int, str]=None,
menu_button: types.MenuButton=None) -> bool:

View File

@ -1178,6 +1178,13 @@ def set_my_short_description(token, short_description=None, language_code=None):
payload['language_code'] = language_code
return _make_request(token, method_url, params=payload, method='post')
def get_my_short_description(token, language_code=None):
method_url = r'getMyShortDescription'
payload = {}
if language_code:
payload['language_code'] = language_code
return _make_request(token, method_url, params=payload)
def get_my_commands(token, scope=None, language_code=None):
method_url = r'getMyCommands'
payload = {}

View File

@ -4287,6 +4287,19 @@ class AsyncTeleBot:
return await asyncio_helper.set_my_short_description(self.token, short_description, language_code)
async def get_my_short_description(self, language_code: Optional[str]=None):
"""
Use this method to get the current bot short description for the given user language.
Returns BotShortDescription on success.
:param language_code: A two-letter ISO 639-1 language code or an empty string
:type language_code: :obj:`str`
:return: :class:`telebot.types.BotShortDescription`
"""
result = await asyncio_helper.get_my_short_description(self.token, language_code)
return types.BotShortDescription.de_json(result)
async def get_my_commands(self, scope: Optional[types.BotCommandScope],
language_code: Optional[str]) -> List[types.BotCommand]:
"""

View File

@ -1163,6 +1163,13 @@ async def set_my_short_description(token, short_description=None, language_code=
payload['language_code'] = language_code
return await _process_request(token, method_url, params=payload, method='post')
async def get_my_short_description(token, language_code=None):
method_url = r'getMyShortDescription'
payload = {}
if language_code:
payload['language_code'] = language_code
return await _process_request(token, method_url, params=payload)
async def get_my_commands(token, scope=None, language_code=None):
method_url = r'getMyCommands'
payload = {}

View File

@ -7317,4 +7317,27 @@ class BotDescription(JsonDeserializable):
return cls(**obj)
def __init__(self, description: str) -> None:
self.description: str = description
self.description: str = description
class BotShortDescription(JsonDeserializable):
"""
This object represents a bot short description.
Telegram documentation: https://core.telegram.org/bots/api#botshortdescription
:param short_description: Bot short description
:type short_description: :obj:`str`
:return: Instance of the class
:rtype: :class:`telebot.types.BotShortDescription`
"""
@classmethod
def de_json(cls, json_string):
if json_string is None: return None
obj = cls.check_json(json_string)
return cls(**obj)
def __init__(self, short_description: str) -> None:
self.short_description: str = short_description