@artem210908

Как запретить отправлять картинки?

Как мне на telebot считывать, отправил ли пользователь картинку?
  • Вопрос задан
  • 451 просмотр
Решения вопроса 1
@artem210908 Автор вопроса
Через content_type
if message.content_type == 'photo':
    print('photo')
else:
    print(message.content_type)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
drygdryg
@drygdryg
Python-разработчик
Обработчик, который будет срабатывать только на файлы картинок, отправленные как фотографии (со сжатием):
import telebot


API_TOKEN = '<api_token>'

bot = telebot.TeleBot(API_TOKEN)


@bot.message_handler(content_types=['photo'])
def detect_photo(message: telebot.types.Message):
    bot.reply_to(message, "Обнаружена картинка.")


bot.infinity_polling()

Если нужно обнаруживать картинки, отправленные как документы, можно проверять тип MIME документа:
def is_photo_document(message: telebot.types.Message) -> bool:
    mime_type = message.document.mime_type
    return mime_type in ('image/jpeg', 'image/png', 'image/webp')


@bot.message_handler(func=is_photo_document, content_types=['document'])
def detect_photo_as_document(message: telebot.types.Message):
    bot.reply_to(message, "Обнаружена картинка, отправленная документом.")
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы