Как создать дополнительные команды для бота телелеграмм?

В боте есть стандартный список команд, но надо расширить функционал. поэтому решил добавить команду \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)

Ответы (0 шт):