Как отправить файлы (4) из ДБ одним сообщением? [Aiogram] [Telegram]
Сейчас файлы отправляются одним сообщением каждое. Хотелось бы, чтобы они отправлялись одним сообщением вместе, либо были прикреплены к текстовому сообщению.
КОД ОТПРАВКИ СООБЩЕНИЯ:
@dp.callback_query_handler(lambda c: c.data and c.data.startswith('obsh_day'))
async def process_callback_kbobsh(callback_query: types.CallbackQuery):
code = callback_query.data[-1]
if code.isdigit():
code = int(code)
if code == 1:
user_id = callback_query.from_user.id
await bot.answer_callback_query(callback_query.id, text='Идет загрузка.\nПодождите, пока загрузятся все файлы.', show_alert=True)
await bot.answer_callback_query(callback_query.id)
await bot.send_message(callback_query.from_user.id, f'День №1\n\nСсылка на ютуб:https://youtu.be/')
await bot.send_chat_action(user_id, ChatActions.UPLOAD_DOCUMENT)
await asyncio.sleep(2)
await bot.send_document(user_id, obsh_day1_dz)
await bot.send_document(user_id, obsh_day1_kz)
await bot.send_document(user_id, obsh_day1_rt)
ЗАПИСЬ ФАЙЛОВ В ДБ: (загружаю специальным скриптом)
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class MediaIds(Base):
__tablename__ = 'Media ids'
id = Column(Integer, primary_key=True)
file_id = Column(String(255))
filename = Column(String(255))
Ответы (1 шт):
Автор решения: MyZik
→ Ссылка
Используйте метод sendMediaGroup, в aiogram это будет выглядеть примерно так:
media_group = MediaGroup([obsh_day1_dz, obsh_day1_kz, obsh_day1_rt])
await bot.send_media_group(chat_id=user_id, media=media_group)