Создаем Telegram бота

Получение фотографий

Следующий пример показывает, как скачать и сохранить картинку, которую прислал пользователь. Не забудьте создать папку images, в которую мы будем сохранять полученные картинки.

import uuid
import telebot
from PIL import Image

token = "ВАШ ТОКЕН"
bot = telebot.TeleBot(token=token)

def process(filename):
    # обработка фотографии
    pass

@bot.message_handler(content_types=['photo'])
def photo(message):
    # скачивание файла
    file_id = message.photo[-1].file_id
    path = bot.get_file(file_id)
    downloaded_file = bot.download_file(path.file_path)

    # узнаем расширение и случайное придумываем имя
    extn = '.' + str(path.file_path).split('.')[-1]
    name = 'images/' + str(uuid.uuid4()) + extn

    # создаем файл и записываем туда данные
    with open(name, 'wb') as new_file:
        new_file.write(downloaded_file)

    # обрабатываем картинку фильтром
    process(name)

    # открываем файл и отправляем его пользователю
    with open(name, 'rb') as new_file:
        bot.send_photo(message.chat.id, new_file.read())

bot.polling(none_stop=True)

Назад Вперед