mirror of
https://github.com/TeamPGM/pyrogram.git
synced 2024-11-16 04:35:24 +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
|
||||
GameHighScore
|
||||
CallbackGame
|
||||
BotCommand
|
||||
""",
|
||||
input_media="""
|
||||
Input Media
|
||||
|
@ -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
|
||||
|
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 .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",
|
||||
]
|
||||
|
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…
Reference in New Issue
Block a user