У меня есть в коде админка, где происходит рассылка сообщения и фото по пользователям, есть проблема, то что когда пользователь отправляет мне текст в лс( а в тексте присутствуют ссылки, жирные шрифты, цитирование и тд), как мне сохранить этот текст так же как отправил пользователь и разослать сообщение по боту?
Код:
class MailingPhotos(StatesGroup):
text = State()
photo = State()
'''Рассылка с фото'''
@dp.message_handler(Text(equals='✏️ Рассылка с фото'))
async def mailing_photos(message: types.Message):
print(1)
try:
await bot.send_message(message.from_user.id, '<b>Введите текст(✏️Рассылка с фото)</b>', parse_mode=types.ParseMode.HTML)
await MailingPhotos.text.set()
except ValueError:
await message.answer('❗️ Значение должно быть строкой')
@dp.message_handler(state=MailingPhotos.text)
async def text_mailing_photo(message: types.Message, state=FSMContext):
async with state.proxy() as data:
data['text'] = html.escape(message.text)
# Отправка текста и фотографии
print(data['text'])
await bot.send_message(message.from_user.id, '<b>Теперь введите фотографию для рассылки</b>', parse_mode=types.ParseMode.HTML)
await MailingPhotos.text.set()
await MailingPhotos.next()
@dp.message_handler(state=MailingPhotos.photo, content_types=ContentType.PHOTO)
async def photo_mailing_photo(message: types.Message, state=FSMContext):
async with state.proxy() as data:
data['photo'] = message.photo[-1].file_id
#photo_id = message.photo[-1].file_id # Получение file_id последней отправленной фотографии
all_user_mailing_photo = db_test_pay.mailing_confirmed()
counter = 0
for i in all_user_mailing_photo:
await bot.send_photo(chat_id=i[0], photo=data['photo'], caption=data['text'], parse_mode=types.ParseMode.HTML)
counter += 1
await bot.send_message(message.from_user.id, f'''✅ Рассылка успешно завершена!</b>
<b>Количество отправленных сообщений:</b> {counter}''', parse_mode=types.ParseMode.HTML)
# Очистка состояния
await state.finish()
Вылезает ошибка: File "C:\Users\clazy\AppData\Local\Programs\Python\Python310\lib\site-packages\aiogram\utils\exceptions.py", line 140, in detect
raise err(cls.text or description)
aiogram.utils.exceptions.CantParseEntities: Can't parse entities: unexpected end tag at byte offset 55