m = bot.send_message(...)
print(m.id)
# создаем словарь данных на верхнем уровне
from collections import defaultdict
user_data = defaultdict(dict)
# в самом хендлере проверяем, изменился ли id медиагруппы, при изменении постим
@dp.message_handler(content_types=['text', 'photo'])
async def get_message(message: types.Message):
if message.photo:
current_user = message.from_user.id
media_group_id = user_data[current_user].get('media_group_id', 0)
if media_group_id == message.media_group_id:
# если не изменилось, значит это не первое фото в группе и ничего постить не надо
pass
else:
# в остальном случае - значит начало нового блока картинок - обновляем id группы и отсылаем сообщение
user_data[current_user]['media_group_id'] = message.media_group_id
await bot.send_message(message.chat.id, f"Текст".format(message.from_user), parse_mode='html', disable_notification=True, disable_web_page_preview=True)
# соединяться элементы будут с помощью '\n' - переноса строки
out = '\n'.join(f"{k}:{v}" for k,v in sorted(today.items()))
Для более продвинутого и точного задания лучше использовать FSM (конечные автоматы), вот например гайд:
https://mastergroosha.github.io/aiogram-3-guide/fsm/
Там сможете более четко контролировать, на каком этапе операции находится бот и выполнять команды с этим ограничением.