Как исправить message photo, message video, media_group_id?

Рейтинг: 1Ответов: 0Опубликовано: 16.02.2023

Подскажите, как исправить, если публикую, в группе телеграм, 2 фото и видео, выскакивает 3 текста, с media_group_id, message photo, message video, хотя нужен, только один, если публикую 5 фото, выскакивает 2 текста, с media_group_id, message photo и только, когда одно фото, показывает, один текст, с media_group_id.

введите сюда описание изображения

Код:

@dp.message_handler(content_types=['photo', 'video'])
async def get_photo_video(message: types.Message, state: FSMContext):
    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"Текст media_group_id ")
        return
    if message.photo:
        async with state.proxy() as data:
            if type(data.get('photo')) is list:
                data['photo'].append(message.photo[-1].file_id)
                data["time"] = time()
                return
            else:
                data['photo'] = [message.photo[-1].file_id]
                data["time"] = time()
        wait_time = 2
        while time() - data["time"] < wait_time:
            await sleep(0.3)
        async with state.proxy() as data:
            await bot.send_message(message.chat.id, "Текст message photo")
            if data.get('time'):
                del data["time"]
                del data["photo"]

    elif message.video:
        async with state.proxy() as data:
            if type(data.get('video')) is list:
                data['video'].append(message.video.file_id)
                data["time"] = time()
                return
            else:
                data['video'] = [message.video.file_id]
                data["time"] = time()
        wait_time = 2
        while time() - data["time"] < wait_time:
            await sleep(0.3)
        async with state.proxy() as data:
            await bot.send_message(message.chat.id, "Текст message video")
            if data.get('time'):
                del data["time"]
                del data["video"]
                return

Ответы

Ответов пока нет.