From a07bf86c30c9c177fee09694ce9962dcb34d005e Mon Sep 17 00:00:00 2001 From: Artem Lavrenov Date: Fri, 21 Jan 2022 21:50:33 +0300 Subject: [PATCH] add default None for get_my_commands parameters scope and language_code sync\async, add examples for bot.set_my_commands --- .../set_command_example.py | 36 +++++++++++++++++++ examples/set_command_example.py | 29 +++++++++++++++ telebot/__init__.py | 6 ++-- telebot/async_telebot.py | 4 +-- 4 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 examples/asynchronous_telebot/set_command_example.py create mode 100644 examples/set_command_example.py diff --git a/examples/asynchronous_telebot/set_command_example.py b/examples/asynchronous_telebot/set_command_example.py new file mode 100644 index 0000000..fae588d --- /dev/null +++ b/examples/asynchronous_telebot/set_command_example.py @@ -0,0 +1,36 @@ +#!/usr/bin/python + +# This is a set_my_commands example. +# Press on [/] button in telegram client. +# Important, to update the command menu, be sure to exit the chat with the bot and log in again +# Important, command for chat_id and for group have a higher priority than for all + +import asyncio +import os +import telebot +from telebot.async_telebot import AsyncTeleBot + + +API_TOKEN = '' +bot = AsyncTeleBot(API_TOKEN) + + +async def main(): + # use in for delete with the necessary scope and language_code if necessary + await bot.delete_my_commands(scope=None, language_code=None) + + await bot.set_my_commands( + commands=[ + telebot.types.BotCommand("command1", "command1 description"), + telebot.types.BotCommand("command2", "command2 description") + ], + # scope=telebot.types.BotCommandScopeChat(12345678) # use for personal command menu for users + # scope=telebot.types.BotCommandScopeAllPrivateChats() # use for all private chats + ) + + cmd = await bot.get_my_commands(scope=None, language_code=None) + print([c.to_json() for c in cmd]) + + +if __name__ == '__main__': + asyncio.run(main()) diff --git a/examples/set_command_example.py b/examples/set_command_example.py new file mode 100644 index 0000000..ba38c12 --- /dev/null +++ b/examples/set_command_example.py @@ -0,0 +1,29 @@ +#!/usr/bin/python + +# This is a set_my_commands example. +# Press on [/] button in telegram client. +# Important, to update the command menu, be sure to exit the chat with the bot and enter to chat again +# Important, command for chat_id and for group have a higher priority than for all + +import os +import telebot + + +API_TOKEN = '' +bot = telebot.TeleBot(API_TOKEN) + +# use in for delete with the necessary scope and language_code if necessary +bot.delete_my_commands(scope=None, language_code=None) + +bot.set_my_commands( + commands=[ + telebot.types.BotCommand("command1", "command1 description"), + telebot.types.BotCommand("command2", "command2 description") + ], + # scope=telebot.types.BotCommandScopeChat(12345678) # use for personal command for users + # scope=telebot.types.BotCommandScopeAllPrivateChats() # use for all private chats +) + +# check command +cmd = bot.get_my_commands(scope=None, language_code=None) +print([c.to_json() for c in cmd]) diff --git a/telebot/__init__.py b/telebot/__init__.py index 5fed5c1..549ac06 100644 --- a/telebot/__init__.py +++ b/telebot/__init__.py @@ -1899,8 +1899,8 @@ class TeleBot: """ return apihelper.delete_chat_photo(self.token, chat_id) - def get_my_commands(self, scope: Optional[types.BotCommandScope], - language_code: Optional[str]) -> List[types.BotCommand]: + def get_my_commands(self, scope: Optional[types.BotCommandScope]=None, + language_code: Optional[str]=None) -> List[types.BotCommand]: """ Use this method to get the current list of the bot's commands. Returns List of BotCommand on success. @@ -3415,4 +3415,4 @@ class TeleBot: - \ No newline at end of file + diff --git a/telebot/async_telebot.py b/telebot/async_telebot.py index 6bfa799..689ba9f 100644 --- a/telebot/async_telebot.py +++ b/telebot/async_telebot.py @@ -2443,8 +2443,8 @@ class AsyncTeleBot: """ return await asyncio_helper.delete_chat_photo(self.token, chat_id) - async def get_my_commands(self, scope: Optional[types.BotCommandScope], - language_code: Optional[str]) -> List[types.BotCommand]: + async def get_my_commands(self, scope: Optional[types.BotCommandScope]=None, + language_code: Optional[str]=None) -> List[types.BotCommand]: """ Use this method to get the current list of the bot's commands. Returns List of BotCommand on success.