Как создать дополнительные команды для бота телелеграмм?
В боте есть стандартный список команд, но надо расширить функционал. поэтому решил добавить команду \other_commands. Но как сделать, чтоб стандартные команды удалялись, а новые появлялись при нажатии на эту команду? Попытался реализовать как то так, но догадываюсь что это не правильно, тк стандартные команды регистрируются в функции main при запуске.
async def set_commands(bot: Bot):
commands = [
types.BotCommand(command='/add', description='Добавить услугу'),
types.BotCommand(command='/other_commands', description='Доп. меню'),
types.BotCommand(command='/cancel', description='Отменить действие'),
]
await bot.set_my_commands(commands)
async def set_add_commands(bot: Bot):
commands = [
types.BotCommand(command="/all_services", description="Все виды услуг"),
types.BotCommand(command="/something", description="Что-то еще"),
]
await bot.set_my_commands(commands)
def register_commands(dp: Dispatcher):
'''При отлове команды \other_commands должна запускаться функция other_commands которая и должна удалять старые команды и добовлять новые'''
dp.register_message_handler(other_commands, commands='other_commands', state='*')
async def other_commands(dp):
await bot.delete_my_commands()
await set_add_commands(bot)
async def main(dp):
register_commands(dp)
await set_commands(bot)
if __name__ == '__main__':
executor.start_polling(dp, on_startup=main, skip_updates=True)