Как получить изображение нужного размера из загруженных в профиль Telegram бота?

Использую telebot из pyTelegramBotAPI 4.0.1

Суть - есть известный user_id (в моем случае это бот). Я хочу вытащить из его профиля уже загруженное изображение нужного размера и отправить его в сообщении.

Делал так (индекс нулевой, т.к. это фото профиля бота, загруженное при создании бота):

  photos = bot.get_user_profile_photos("user_id")
  print(photos.photos[0])

Получаем список объектов PhotoSize:

 >>
 [<telebot.types.PhotoSize object at 0x000001E7BA390A00>,
 <telebot.types.PhotoSize object at 0x000001E7BA3909A0>,
 <telebot.types.PhotoSize object at 0x000001E7BA390970>]

Далее смотрим содержимое:

   print(photos.photos[0][0])
   print(photos.photos[0][1])
   print(photos.photos[0][2])

Видим:

>>
{'file_id': 'AgACAgIAAxkDAAOuYVdrnP1M4psBPZ-8f6uDjAZfBp0AAmqyMRvNGpFKTv3BYdexypUBAAMCAANhAAMhBA', 'file_unique_id': 'AQADarIxG80akUoAAQ', 'width': 160, 'height': 160, 'file_size': 13626}
{'file_id': 'AgACAgIAAxkDAAOuYVdrnP1M4psBPZ-8f6uDjAZfBp0AAmqyMRvNGpFKTv3BYdexypUBAAMCAANiAAMhBA', 'file_unique_id': 'AQADarIxG80akUpn', 'width': 320, 'height': 320, 'file_size': 36014}
{'file_id': 'AgACAgIAAxkDAAOuYVdrnP1M4psBPZ-8f6uDjAZfBp0AAmqyMRvNGpFKTv3BYdexypUBAAMCAANjAAMhBA', 'file_unique_id': 'AQADarIxG80akUoB', 'width': 640, 'height': 640, 'file_size': 89766}

т.е. имеем неуникальный file_id в списке в каждом из трех объектов PhotoSize и уникальный file_unique_id, отвечающий за нужный размер превью.

Если сделать так:

    bot.send_photo(message.chat.id, bot.get_user_profile_photos("user_id").photos[0][0].file_id)

то по file_id получим третий элемент из списка с максимальным размером.

Вопрос - как в send_photo передать нужный объект, нужного размера из списка объектов PhotoSize.


Ответы (0 шт):