Add new method set_bot_commands (#657)

* a new method set_bot_commands

* Delete bot_commands_list.py

* Update set_bot_commands.py

* Update __init__.py

* Update set_bot_commands.py

* Update set_bot_commands.py

* Update bot_command.py

* Update set_bot_commands.py

* Update set_bot_commands.py

* Update compiler.py

Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
This commit is contained in:
Jonathan 2021-05-11 11:22:17 +03:00 committed by GitHub
parent ed3576e8e6
commit 293e852afd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 110 additions and 2 deletions

View File

@ -394,6 +394,7 @@ def pyrogram_api():
CallbackQuery
GameHighScore
CallbackGame
BotCommand
""",
input_media="""
Input Media

View File

@ -24,6 +24,7 @@ from .request_callback_answer import RequestCallbackAnswer
from .send_game import SendGame
from .send_inline_bot_result import SendInlineBotResult
from .set_game_score import SetGameScore
from .set_bot_commands import SetBotCommands
class Bots(
@ -34,6 +35,7 @@ class Bots(
SendInlineBotResult,
SendGame,
SetGameScore,
GetGameHighScores
GetGameHighScores,
SetBotCommands
):
pass

View File

@ -0,0 +1,59 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-2021 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 Optional, List
from pyrogram import raw
from pyrogram import types
from pyrogram.scaffold import Scaffold
class SetBotCommands(Scaffold):
async def set_bot_commands(self, commands: Optional[List[types.BotCommand]]):
"""Set the bot commands list.
The commands passed will overwrite any command set previously.
This method can be used by the own bot only.
Parameters:
commands (List of :obj:`~pyrogram.types.BotCommand`):
A list of bot commands.
Pass None to remove all commands.
Returns:
``bool``: True on success, False otherwise.
Example:
.. code-block:: python
from pyrogram.types import BotCommand
# Set new commands
app.set_bot_commands([
BotCommand("start", "Start the bot"),
BotCommand("settings", "Bot settings")])
# Remove commands
app.set_bot_commands(None)
"""
return await self.send(
raw.functions.bots.SetBotCommands(
commands=[c.write() for c in commands or []]
)
)

View File

@ -26,6 +26,7 @@ from .keyboard_button import KeyboardButton
from .login_url import LoginUrl
from .reply_keyboard_markup import ReplyKeyboardMarkup
from .reply_keyboard_remove import ReplyKeyboardRemove
from .bot_command import BotCommand
__all__ = [
"CallbackGame",
@ -37,5 +38,6 @@ __all__ = [
"KeyboardButton",
"ReplyKeyboardMarkup",
"ReplyKeyboardRemove",
"LoginUrl"
"LoginUrl",
"BotCommand",
]

View File

@ -0,0 +1,44 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-2021 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 pyrogram import raw
from ..object import Object
class BotCommand(Object):
"""A bot command with the standard slash "/" prefix.
Parameters:
command (``str``):
The bot command, for example: "/start".
description (``str``):
Description of the bot command.
"""
def __init__(self, command: str, description: str):
super().__init__()
self.command = command
self.description = description
def write(self):
return raw.types.BotCommand(
command=self.command,
description=self.description
)