mirror of
https://github.com/pyrogram/pyrogram
synced 2025-08-28 21:07:59 +00:00
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:
parent
ed3576e8e6
commit
293e852afd
@ -394,6 +394,7 @@ def pyrogram_api():
|
|||||||
CallbackQuery
|
CallbackQuery
|
||||||
GameHighScore
|
GameHighScore
|
||||||
CallbackGame
|
CallbackGame
|
||||||
|
BotCommand
|
||||||
""",
|
""",
|
||||||
input_media="""
|
input_media="""
|
||||||
Input Media
|
Input Media
|
||||||
|
@ -24,6 +24,7 @@ from .request_callback_answer import RequestCallbackAnswer
|
|||||||
from .send_game import SendGame
|
from .send_game import SendGame
|
||||||
from .send_inline_bot_result import SendInlineBotResult
|
from .send_inline_bot_result import SendInlineBotResult
|
||||||
from .set_game_score import SetGameScore
|
from .set_game_score import SetGameScore
|
||||||
|
from .set_bot_commands import SetBotCommands
|
||||||
|
|
||||||
|
|
||||||
class Bots(
|
class Bots(
|
||||||
@ -34,6 +35,7 @@ class Bots(
|
|||||||
SendInlineBotResult,
|
SendInlineBotResult,
|
||||||
SendGame,
|
SendGame,
|
||||||
SetGameScore,
|
SetGameScore,
|
||||||
GetGameHighScores
|
GetGameHighScores,
|
||||||
|
SetBotCommands
|
||||||
):
|
):
|
||||||
pass
|
pass
|
||||||
|
59
pyrogram/methods/bots/set_bot_commands.py
Normal file
59
pyrogram/methods/bots/set_bot_commands.py
Normal 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 []]
|
||||||
|
)
|
||||||
|
)
|
@ -26,6 +26,7 @@ from .keyboard_button import KeyboardButton
|
|||||||
from .login_url import LoginUrl
|
from .login_url import LoginUrl
|
||||||
from .reply_keyboard_markup import ReplyKeyboardMarkup
|
from .reply_keyboard_markup import ReplyKeyboardMarkup
|
||||||
from .reply_keyboard_remove import ReplyKeyboardRemove
|
from .reply_keyboard_remove import ReplyKeyboardRemove
|
||||||
|
from .bot_command import BotCommand
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"CallbackGame",
|
"CallbackGame",
|
||||||
@ -37,5 +38,6 @@ __all__ = [
|
|||||||
"KeyboardButton",
|
"KeyboardButton",
|
||||||
"ReplyKeyboardMarkup",
|
"ReplyKeyboardMarkup",
|
||||||
"ReplyKeyboardRemove",
|
"ReplyKeyboardRemove",
|
||||||
"LoginUrl"
|
"LoginUrl",
|
||||||
|
"BotCommand",
|
||||||
]
|
]
|
||||||
|
44
pyrogram/types/bots_and_keyboards/bot_command.py
Normal file
44
pyrogram/types/bots_and_keyboards/bot_command.py
Normal 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
|
||||||
|
)
|
Loading…
x
Reference in New Issue
Block a user