@clazyx

Как сохранить текст который отправил пользователь в html формате?

У меня есть в коде админка, где происходит рассылка сообщения и фото по пользователям, есть проблема, то что когда пользователь отправляет мне текст в лс( а в тексте присутствуют ссылки, жирные шрифты, цитирование и тд), как мне сохранить этот текст так же как отправил пользователь и разослать сообщение по боту?
Код:

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
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы