Рассылка aiogram

подскажите, нужно реализовать рассылку с описанием и без в одном проекте в аиограмм. Сделал возможным отправку фотографии с описанием и без. Начал тестирование и стало очевидно, что хендлеры перекрывают друг-друга, даже с учётом выдерживания табулирования, что повело за собой такие последствия, что работает один из хедлеров. Как реализовать возможность отправки с описанием и без?

@dp.callback_query_handler(call_data.filter(item_name="description")) async def messages(query: CallbackQuery): chat_id = query.message.chat.id if query['from'].id == admin_id: chat_id = query.message.chat.id admin_text = "✍️Введите текст и отправьте его!\n?Вы можете вносить правки до отправки фотографии!" await bot.send_message(chat_id=chat_id, text=admin_text) @dp.message_handler() async def msg(message: Message): await add_TEXT(message.text) await bot.send_message(admin_id, text=await get_value()) await bot.send_message(admin_id, text="Если всё правильно, отправьте сюда фотографию")

        @dp.message_handler(content_types=["photo"])
        async def send_photoo(message: types.Message):
            receive_users, block_users1 = 0, 0
            if message['from'].id == admin_id:
                photo_id = message.photo[-1].file_id
                user = send_Message()
                text = await get_value()

                print(f"user: {user}")
                for us in await user:
                    for i in us:
                        print(f"us: {i}")
                        try:
                            await bot.send_photo(i, photo_id, caption=text)
                            receive_users += 1
                        except:

                            block_users1 += 1
                            # await asyncio.sleep(0.1)
                await bot.send_message(message.chat.id, f"*Рассылка была завершена *\n"
                                                        f"✅получили сообщение: *{receive_users}*\n"
                                                        f"?заблокировали бота: *{block_users1}*",
                                       parse_mode='Markdown')

@dp.callback_query_handler(call_data.filter(item_name="nodiscription")) async def messages(query: CallbackQuery): if query['from'].id == admin_id: # text_msg = query.message.text chat_id = query.message.chat.id admin_text = "?Выберите несколько фотографий для отправки!" await bot.send_message(chat_id=chat_id, text=admin_text)

    @dp.message_handler(content_types=["photo"])
    async def send_photo(message: types.Message):
        receive_users, block_users1 = 0, 0
        if message['from'].id == admin_id:
            photo_id = message.photo[-1].file_id
            user = send_Message()

            print(f"user: {user}")
            for us in await user:
                for i in us:
                    print(f"us: {i}")
                    try:
                        await bot.send_photo(i, photo_id)
                        receive_users += 1

                    except:

                        block_users1 += 1
                        # await asyncio.sleep(0.1)
            await bot.send_message(message.chat.id, f"*Рассылка была завершена *\n"
                                                    f"✅получили сообщение: *{receive_users}*\n"
                                                    f"?заблокировали бота: *{block_users1}*",
                                   parse_mode='Markdown')

Ответы (0 шт):