@saund901

Как записать текст из команды Telegram в переменную?

Есть команда, которая озвучивает сообщение
В данной реализации по команде запрашивается текст и озвучивается.
Проблема: любой текст, даже набранный вне команды будет озвучен, как решить данную проблему? (озвучивать текст только внутри команды, в любых других случаях стандартный ответ)
@bot.message_handler(commands=['voice'])
def handle_text (message):
    bot.send_message(message.chat.id, "Введите данные")
    @bot.message_handler(content_types=['text'])
    def handle_text(message):
        txt = message.text
        print(txt)
#стандартный ответ
@bot.message_handler(content_types=['text'])
    def ans(message):
        #если есть этот хэндлер, будет обрабатываться только он, команда voice не сработает
  • Вопрос задан
  • 2922 просмотра
Пригласить эксперта
Ответы на вопрос 1
@cashncarry
нагуглили
1. Можно воспользоваться FSM и библиотекой aiogram, тогда бот будет ждать "особое" сообщение от пользователя. Почитай Машина состояний

2. Через БД или Redis метить нажавшего на команду. Потом проверять, нажимал ли на команду и выдавать результат.

3. Принимать текст введенный после команды. "/voice озвучь этот тест"
arg = message.get_args()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы