Рассылка 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')