Обработчик, который будет срабатывать только на файлы картинок, отправленные как фотографии (со сжатием):
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, "Обнаружена картинка, отправленная документом.")