Skip to content

Commit 1d62adc

Browse files
Added the ability to get the current bot name in the given language as the class BotName using the method getMyName.
1 parent 77e1928 commit 1d62adc

File tree

5 files changed

+70
-0
lines changed

5 files changed

+70
-0
lines changed

telebot/__init__.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3462,6 +3462,22 @@ def set_my_name(self, name: Optional[str]=None, language_code: Optional[str]=Non
34623462

34633463
return apihelper.set_my_name(self.token, name, language_code)
34643464

3465+
def get_my_name(self, language_code: Optional[str]=None):
3466+
"""
3467+
Use this method to get the current bot name for the given user language.
3468+
Returns BotName on success.
3469+
3470+
Telegram documentation: https://core.telegram.org/bots/api#getmyname
3471+
3472+
:param language_code: Optional. A two-letter ISO 639-1 language code or an empty string
3473+
:type language_code: :obj:`str`
3474+
3475+
:return: :class:`telebot.types.BotName`
3476+
"""
3477+
3478+
result = apihelper.get_my_name(self.token, language_code)
3479+
return types.BotName.de_json(result)
3480+
34653481
def set_my_description(self, description: Optional[str]=None, language_code: Optional[str]=None):
34663482
"""
34673483
Use this method to change the bot's description, which is shown in

telebot/apihelper.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,6 +1205,13 @@ def set_my_name(token, name=None, language_code=None):
12051205
payload['language_code'] = language_code
12061206
return _make_request(token, method_url, params=payload, method='post')
12071207

1208+
def get_my_name(token, language_code=None):
1209+
method_url = r'getMyName'
1210+
payload = {}
1211+
if language_code is not None:
1212+
payload['language_code'] = language_code
1213+
return _make_request(token, method_url, params=payload)
1214+
12081215
def set_chat_menu_button(token, chat_id=None, menu_button=None):
12091216
method_url = r'setChatMenuButton'
12101217
payload = {}

telebot/async_telebot.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4379,6 +4379,22 @@ async def set_my_name(self, name: Optional[str]=None, language_code: Optional[st
43794379

43804380
return await asyncio_helper.set_my_name(self.token, name, language_code)
43814381

4382+
async def get_my_name(self, language_code: Optional[str]=None):
4383+
"""
4384+
Use this method to get the current bot name for the given user language.
4385+
Returns BotName on success.
4386+
4387+
Telegram documentation: https://core.telegram.org/bots/api#getmyname
4388+
4389+
:param language_code: Optional. A two-letter ISO 639-1 language code or an empty string
4390+
:type language_code: :obj:`str`
4391+
4392+
:return: :class:`telebot.types.BotName`
4393+
"""
4394+
4395+
result = await asyncio_helper.get_my_name(self.token, language_code)
4396+
return types.BotName.de_json(result)
4397+
43824398
async def set_chat_menu_button(self, chat_id: Union[int, str]=None,
43834399
menu_button: types.MenuButton=None) -> bool:
43844400
"""

telebot/asyncio_helper.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1193,6 +1193,13 @@ async def set_my_name(token, name=None, language_code=None):
11931193
payload['language_code'] = language_code
11941194
return await _process_request(token, method_url, params=payload, method='post')
11951195

1196+
async def get_my_name(token, language_code=None):
1197+
method_url = r'getMyName'
1198+
payload = {}
1199+
if language_code is not None:
1200+
payload['language_code'] = language_code
1201+
return await _process_request(token, method_url, params=payload)
1202+
11961203
async def set_chat_menu_button(token, chat_id=None, menu_button=None):
11971204
method_url = r'setChatMenuButton'
11981205
payload = {}

telebot/types.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7658,3 +7658,27 @@ def to_dict(self):
76587658

76597659
def to_json(self):
76607660
return json.dumps(self.to_dict())
7661+
7662+
7663+
class BotName(JsonDeserializable):
7664+
"""
7665+
This object represents a bot name.
7666+
7667+
Telegram Documentation: https://core.telegram.org/bots/api#botname
7668+
7669+
:param name: The bot name
7670+
:type name: :obj:`str`
7671+
7672+
:return: Instance of the class
7673+
:rtype: :class:`BotName`
7674+
"""
7675+
7676+
@classmethod
7677+
def de_json(cls, json_string):
7678+
if json_string is None:
7679+
return None
7680+
obj = cls.check_json(json_string)
7681+
return cls(**obj)
7682+
7683+
def __init__(self, name: str):
7684+
self.name: str = name

0 commit comments

Comments
 (0)