Задать вопрос
@xx_RuBiCoN_xx

Почему не перехватываются медиа сообщения?

Есть вот такие условия:
@bot.message_handler(func=lambda message: message.from_user.id == тут_ид)
def dialog_message_operator(message):
    if message.text:
        operator_message = message.text
    elif message.voice:
        operator_message = message.voice.file_id
    elif message.photo:
        operator_message = message.photo[-1].file_id
    elif message.video:
        operator_message = message.video.file_id
    elif message.sticker:
        operator_message = message.sticker.file_id
    else:
        operator_message = "Unsupported media type"

    if operator_message:
        bot.send_message('тут_ид', operator_message)


Почему пересылается только текстовое сообщение? Если я правильно понимаю, то я не правильно указываю условие, т.к. если я создаю хандлер реагирующий, например, на voice - то голосовые пересылаются.
  • Вопрос задан
  • 19 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@xx_RuBiCoN_xx Автор вопроса
Нигде не нашёл адекватных ответов почему так, ноооо...

Если вы обрабатываете сообщение через хандлер == юзер_ид(или состояние, или любое другое условие) - то он тупо не будет видеть всю медиа. Только текст. Если вы внутрь этого хандлера засунете хандлер который обрабатывает voice - он тоже не сработает, т.к. верхний хандлер не заметит голосовое сообщение.

Я выкрутился так:
Создал в самом конце кода хандлер реагирующий сразу на всё и прописал условия в которых он будет работать(делаю запрос к БД, проверяю состояние юзера, если совпадает - пересылаю сообщение)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Wanted. Санкт-Петербург
До 220 000 ₽
Wanted. Санкт-Петербург
До 150 000 ₽
ЛАНИТ Москва
от 120 000 ₽
18 дек. 2024, в 12:39
1000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект