Как сделать чтобы бот каждый раз не скачивал изображение, а отдавал из своих медиа?
Привет пишу бота для телеги на aiogram парсер каждую неделю будет скачивать нужный мне календарик.
Отдает календарь
@dp.message_handler(commands=['calend'])
async def calendar(message: types.Message):
await bot.send_photo(chat_id=message.chat.id, photo=open('1.png', 'rb'))
Вот этот хендлер отдает скаченый календарь, есть ли возможность сделать так чтобы каждый раз не было загрузки, чтобы бот не забивал свое медиа а выгружал фотку из него?
Ответы (1 шт):
У файлов в телеграмме есть так называемый file_id Когда вы отправляете боту допустим фото то тг назначает файлу свой ид которым вы будете оперировать в будущем подставляя его туда куда вам нужно, это снизит нагрузку на сервера телеграмм и даст возможность хэшировать медиа. 1 раз загрузил с интернета а дальше эта фотка будет подгружаться из памяти.
Я рекомендую вам сделать базу данных и там хранить эти данные.
file_id = 'ifhcqwei8hfoiqwherg21yofhiu37w2y9rf8h2p3hrtfo8'
@dp.message_handler(commands=['calend'])
async def calendar(message: types.Message):
sent = await bot.send_photo(chat_id=message.chat.id, photo=file_id)