Проверка формата фото gif или png/jpg

уважаемые пользователи Stackoverflow ?

Я искал в интернете свой вопрос, может плохо искал, но расскажу что я хочу у вас спросить. Можно ли как-то узнать какой формат фотографии/файла загружаешь?

К примеру у меня есть бот в Telegram, и я для своей команды использую библиотеку nekos.py. Там файлы gif/png выбираются случайно, я точнее не могу указать параметр что я хочу gif или png/jpg.

Можно ли как-то отслеживать что библиотека подгружает? Если к примеру в ссылке .gif в конце то бот отправляет send_animation, а если jpg/png то send_photo

@dp.message_handler(commands=['waifu'])
async def send_randavatar(message):
    your_name = message.from_user.username
    hugimg = nekos.img('waifu')
    await bot.send_animation(message.chat.id, hugimg, caption=f'@{your_name}')

Если .gif в конце

введите сюда описание изображения

Иначе если .png/jpg

введите сюда описание изображения

P.S: Я использую библиотеку aiogram. Upd: на второй картинке используются команда, не для упоминания пользователя, но суть остается одна и та же.


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

Автор решения: ZxNuClear

Не забудь добавить import os

@dp.message_handler(commands=['waifu'])
async def send_randavatar(message: types.Message):
  your_name = message.from_user.username
  hugimg = nekos.img('hug')
  extension = os.path.splitext(hugimg)[1]
  if extension == '.jpg':
    await bot.send_photo(message.chat.id, hugimg, caption=f'@{your_name}')
  elif extension == '.png':
    await bot.send_photo(message.chat.id, hugimg, caption=f'@{your_name}')
  elif extension == '.gif':
    await bot.send_animation(message.chat.id, hugimg, caption=f'@{your_name}')
  else:
    await message.answer('Нет картинки')
→ Ссылка