remberq
@remberq
Пытаюсь понять, что такое это ваше IT

Бот отправляет фото из директории в чат, как мне получить file_id что бы он не грузил каждый раз из папки?

Есть такой код, который ловит фото отправленные боту, и я могу таким образом получать file_id, но он не работает когда сам бот отправляет фото
@dp.message_handler(content_types=['photo'], state='*')
async def scan_photo(message: types.Message):
    doc = message.photo[0].file_id
    info = await bot.get_file(doc)


Скажем так, у меня есть примерно 700 картинок небольших, лежащих у меня на компе. Сейчас этот бот присылает их по моему алгоритму, но всегда их загружает. Мне бы хотелось эти картинки превратить в file_id, но не хотелось бы делать это вручную и все подряд загружать самому. Мне кажется есть возможность автоматизировать все это?
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
photo_data = await db.get_file_info(f'{files_dir}file_name.png')
if photo_data is None:
    media = types.InputFile(f'{files_dir}file_name.png')
    msg = await dp.bot.send_photo(chat_id=message.chat.id, photo=media)
    full_size_photo_id = msg['photo'][-1]['file_id']
    await db.add_file_info(full_size_photo_id)
else:
    await dp.bot.send_photo(chat_id=message.chat.id, photo=photo_data)


В зависимости от того какую БД и используете вы fetchval или fetch возможно условие
if photo_data is None:
Надо будет поменять на:
if len(photo_data) == 0:
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы