Skip to content

Commit

Permalink
Added new bot methods
Browse files Browse the repository at this point in the history
set_bot_name
get_bot_name
set_bot_info_description
get_bot_info_description
set_bot_info_short_description
get_bot_info_short_description
  • Loading branch information
KurimuzonAkuma committed Oct 22, 2024
1 parent 046312a commit 40e2afe
Show file tree
Hide file tree
Showing 8 changed files with 404 additions and 0 deletions.
6 changes: 6 additions & 0 deletions compiler/docs/compiler.py
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,12 @@ def get_title_list(s: str) -> list:
answer_shipping_query
create_invoice_link
refund_star_payment
set_bot_info_description
get_bot_info_description
set_bot_info_short_description
get_bot_info_short_description
set_bot_name
get_bot_name
""",
business="""
Business
Expand Down
12 changes: 12 additions & 0 deletions pyrogram/methods/bots/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
from .delete_bot_commands import DeleteBotCommands
from .get_bot_commands import GetBotCommands
from .get_bot_default_privileges import GetBotDefaultPrivileges
from .get_bot_info_description import GetBotInfoDescription
from .get_bot_info_short_description import GetBotInfoShortDescription
from .get_bot_name import GetBotName
from .get_chat_menu_button import GetChatMenuButton
from .get_game_high_scores import GetGameHighScores
from .get_inline_bot_results import GetInlineBotResults
Expand All @@ -35,6 +38,9 @@
from .send_invoice import SendInvoice
from .set_bot_commands import SetBotCommands
from .set_bot_default_privileges import SetBotDefaultPrivileges
from .set_bot_info_description import SetBotInfoDescription
from .set_bot_info_short_description import SetBotInfoShortDescription
from .set_bot_name import SetBotName
from .set_chat_menu_button import SetChatMenuButton
from .set_game_score import SetGameScore

Expand All @@ -57,7 +63,13 @@ class Bots(
GetBotCommands,
DeleteBotCommands,
SetBotDefaultPrivileges,
SetBotInfoDescription,
SetBotInfoShortDescription,
SetBotName,
GetBotDefaultPrivileges,
GetBotInfoDescription,
GetBotInfoShortDescription,
GetBotName,
SetChatMenuButton,
GetChatMenuButton,
AnswerWebAppQuery
Expand Down
63 changes: 63 additions & 0 deletions pyrogram/methods/bots/get_bot_info_description.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
#
# This file is part of Pyrogram.
#
# Pyrogram is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Pyrogram is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.

from typing import Union

import pyrogram
from pyrogram import raw


class GetBotInfoDescription:
async def get_bot_info_description(
self: "pyrogram.Client",
language_code: str = "",
for_my_bot: Union[int, str] = None,
) -> str:
"""Use this method to get the current / owned bot description for the given user language.
.. note::
If the current account is an User, can be called only if the ``for_my_bot`` has ``can_be_edited`` property set to True.
.. include:: /_includes/usable-by/users-bots.rst
Parameters:
language_code (``str``, *optional*):
A two-letter ISO 639-1 language code or an empty string
for_my_bot (``int`` | ``str``, *optional*):
Unique identifier (int) or username (str) of the bot for which profile photo has to be updated instead of the current user.
The bot should have ``can_be_edited`` property set to True.
Returns:
``str``: On success, returns the text shown in the chat with a bot if the chat is empty in the given language.
Example:
.. code-block:: python
bot_description = await app.get_bot_info_description()
"""

bot_info = await self.invoke(
raw.functions.bots.GetBotInfo(
bot=await self.resolve_peer(for_my_bot) if for_my_bot else None,
lang_code=language_code
)
)

return bot_info.description
63 changes: 63 additions & 0 deletions pyrogram/methods/bots/get_bot_info_short_description.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
#
# This file is part of Pyrogram.
#
# Pyrogram is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Pyrogram is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.

from typing import Union

import pyrogram
from pyrogram import raw


class GetBotInfoShortDescription:
async def get_bot_info_short_description(
self: "pyrogram.Client",
language_code: str = "",
for_my_bot: Union[int, str] = None,
) -> str:
"""Use this method to get the current / owned bot short description for the given user language.
.. note::
If the current account is an User, can be called only if the ``for_my_bot`` has ``can_be_edited`` property set to True.
.. include:: /_includes/usable-by/users-bots.rst
Parameters:
language_code (``str``, *optional*):
A two-letter ISO 639-1 language code or an empty string
for_my_bot (``int`` | ``str``, *optional*):
Unique identifier (int) or username (str) of the bot for which profile photo has to be updated instead of the current user.
The bot should have ``can_be_edited`` property set to True.
Returns:
``str``: On success, returns the text shown on a bot's profile page and sent together with the link when users share the bot in the given language.
Example:
.. code-block:: python
bot_short_description = await app.get_bot_info_short_description()
"""

bot_info = await self.invoke(
raw.functions.bots.GetBotInfo(
bot=await self.resolve_peer(for_my_bot) if for_my_bot else None,
lang_code=language_code
)
)

return bot_info.about
62 changes: 62 additions & 0 deletions pyrogram/methods/bots/get_bot_name.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
#
# This file is part of Pyrogram.
#
# Pyrogram is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Pyrogram is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.

from typing import Union

import pyrogram
from pyrogram import raw


class GetBotName:
async def get_bot_name(
self: "pyrogram.Client",
language_code: str = "",
for_my_bot: Union[int, str] = None,
) -> str:
"""Use this method to get the current / owned bot name for the given user language.
.. note::
If the current account is an User, can be called only if the ``for_my_bot`` has ``can_be_edited`` property set to True.
.. include:: /_includes/usable-by/users-bots.rst
Parameters:
language_code (``str``, *optional*):
A two-letter ISO 639-1 language code or an empty string
for_my_bot (``int`` | ``str``, *optional*):
Unique identifier (int) or username (str) of the bot for which profile photo has to be updated instead of the current user.
The bot should have ``can_be_edited`` property set to True.
Returns:
``str``: On success, returns the name of a bot in the given language.
Example:
.. code-block:: python
bot_name = await app.get_bot_name()
"""

bot_info = await self.invoke(
raw.functions.bots.GetBotInfo(
bot=await self.resolve_peer(for_my_bot) if for_my_bot else None,
lang_code=language_code
)
)
return bot_info.name
66 changes: 66 additions & 0 deletions pyrogram/methods/bots/set_bot_info_description.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
#
# This file is part of Pyrogram.
#
# Pyrogram is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Pyrogram is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.

from typing import Union

import pyrogram
from pyrogram import raw


class SetBotInfoDescription:
async def set_bot_info_description(
self: "pyrogram.Client",
description: str,
language_code: str = "",
for_my_bot: Union[int, str] = None,
) -> bool:
"""Use this method to change the bot's description, which is shown in the chat with the bot if the chat is empty.
.. note::
If the current account is an User, can be called only if the ``for_my_bot`` has ``can_be_edited`` property set to True.
.. include:: /_includes/usable-by/users-bots.rst
Parameters:
description (``str``):
New bot description; 0-512 characters. Pass an empty string to remove the dedicated description for the given language.
language_code (``str``, *optional*):
A two-letter ISO 639-1 language code or an empty string
for_my_bot (``int`` | ``str``, *optional*):
Unique identifier (int) or username (str) of the bot for which profile photo has to be updated instead of the current user.
The bot should have ``can_be_edited`` property set to True.
Returns:
``bool``: True on success.
Example:
.. code-block:: python
await app.set_bot_info_description("")
"""

return await self.invoke(
raw.functions.bots.SetBotInfo(
bot=await self.resolve_peer(for_my_bot) if for_my_bot else None,
lang_code=language_code,
description=description
)
)
66 changes: 66 additions & 0 deletions pyrogram/methods/bots/set_bot_info_short_description.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
#
# This file is part of Pyrogram.
#
# Pyrogram is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Pyrogram is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.

from typing import Union

import pyrogram
from pyrogram import raw


class SetBotInfoShortDescription:
async def set_bot_info_short_description(
self: "pyrogram.Client",
short_description: str,
language_code: str = "",
for_my_bot: Union[int, str] = None,
) -> bool:
"""Use this method to change the bot's short description, which is shown on the bot's profile page and is sent together with the link when users share the bot.
.. note::
If the current account is an User, can be called only if the ``for_my_bot`` has ``can_be_edited`` property set to True.
.. include:: /_includes/usable-by/users-bots.rst
Parameters:
short_description (``str``):
New short description for the bot; 0-120 characters. Pass an empty string to remove the dedicated short description for the given language.
language_code (``str``, *optional*):
A two-letter ISO 639-1 language code or an empty string
for_my_bot (``int`` | ``str``, *optional*):
Unique identifier (int) or username (str) of the bot for which profile photo has to be updated instead of the current user.
The bot should have ``can_be_edited`` property set to True.
Returns:
``bool``: True on success.
Example:
.. code-block:: python
await app.set_bot_info_short_description("")
"""

return await self.invoke(
raw.functions.bots.SetBotInfo(
bot=await self.resolve_peer(for_my_bot) if for_my_bot else None,
lang_code=language_code,
about=short_description
)
)
Loading

0 comments on commit 40e2afe

Please sign in to comment.