await bot.answer_callback_query(callback_query_id=cmd.id, text="Уведомление", show_alert=True)
await callback_query.answer("Уведомление", show_alert=True)
print(f”Пропускаем уже обработанное message _id={msg.id}”)
async def dl_last_photo(target): #передаём в функцию ID или Username чата
async for msg in app.get_chat_history(target, limit = 50, offset_id = -1): #ищем в истории с конца, обрабатываем 50 сообщений
if msg.photo: #если есть фото
print(msg.photo.file_id) #в консоль выводим ID - не обязательно
await app.download_media(msg.photo) #скачиваем фото из сообщения в стандартный каталог (папка_бота/downloads)
Выдаёт ошибку: if (msg.from_user is None and msg.forward_from_chat.id == public.id):
AttributeError: ‘NoneType’ object has no attribute ‘I’d’
if (msg.from_user is None) # если сообщение не имеет автора
# и это репост из паблика (проверка по id)
any_sender_id = message.from_user.id if message.from_user else message.sender_chat.id #вытаскиваем ID
if any_sender_id == public.id: #проверяем что это нужный паблик
#дальше твоя логика
any_sender_id = None #объявляем переменную для хранения ID
if message.from_user: #если у нас есть параметр from_user
any_sender_id = message.from_user.id #присваеваем ID юзера
else: #иначе
any_sender_id = message.sender_chat.id #присваеваем ID канала или чата
if any_sender_id == public.id: #проверяем что это нужный паблик
#дальше твоя логика
# к тому что есть добавил это
from time import sleep
# список, где будет храниться message.media_group_id
check_mess = []
@dp.channel_post_handler(content_types=['any'])
async def auto_redactor(message: types.Message):
text = message.text
if isinstance(message.caption, str):
caption = message.caption
else:
caption = ''
if hasattr(message, 'text') and isinstance(text, str):
await message.edit_text(f'{text}\n\nподпись к тексту',parse_mode="HTML")
# добавил проверку, что media_group_id ещё не в списке
elif hasattr(message, 'caption') and message.media_group_id not in check_mess:
# добавляем в список наш media_group_id
check_mess.append(message.media_group_id)
await message.edit_caption(f'подпись к медиа',parse_mode="HTML")
# чищу список после 5 сек ожидания, чтобы хендлер успел обработать все медиа
sleep(5)
check_mess.clear()