Вот упрощенная версия моего кода : < /p>
`from telegram.constants import parsemode
from telegram.helpers import asscover_markdown < /p>
async def send_ai_message (обновление, контекст): affice = update.message.text
await update.message.reply_text ("Мысли ...") < /p>
Код: Выделить всё
# Get dynamic text from the AI
response_text = ai.chat_ai(prompt)
# Escape dynamic text for MarkdownV2
safe_response = escape_markdown(response_text, version=2)
# Combine the safe dynamic text with a static code block
message_text = f"```python\n{safe_response}\n```"
await context.bot.send_message(
chat_id=update.effective_chat.id,
text=message_text,
parse_mode=ParseMode.MARKDOWN_V2
)`
< /code>
Однако, когда я запускаю этот код, я получаю следующую ошибку: < /p>
Bad Request: Can't parse entities: can't find end of code entity at byte offset ...< /code>
Я понимаю, что проблема, вероятно, связана с строгими правилами форматирования MarkdownV2, где некоторые специальные символы (например, _, *, `, [,] и т. Д.) должны быть должным образом сбежались. В моем случае мне нужно сохранить статическую форматирование маркировки (маркеры блока кода), обеспечивая, чтобы динамический текст полностью сбежал. < /P>
Мои вопросы: < /p>
Что может вызвать эту ошибку, и почему она происходит даже после использования asscampdown в динамическом тексте? Br /> Есть ли какие-либо дополнительные соображения или лучшие практики при работе с MarkdownV2 в последней версии Python-Telegram-Bot (отмечая, что Parsemode сейчас в Telegram.constants)?
Любая помощь или руководство будет высоко оценено. Заранее спасибо!your text
Что я попробовал? Я использовал функцию escape_markdown (с версией 2 для MarkdownV2) для обработки динамического содержимого, а затем вставил этот результат в кодовый блок, используя тройные бэки. Например: < /p>
Код: Выделить всё
safe_response = escape_markdown(response_text, version=2) message_text = f"```python\n{safe_response}\n```" I then sent the message with parse_mode=ParseMode.MARKDOWN_V2.
чего я ожидал? содержащий динамический текст со всеми специальными символами MarkdownV2, правильно сбежал. Однако вместо ожидаемого вывода я получил ошибку: < /p>
Код: Выделить всё
Bad Request: Can't parse entities: can't find end of code entity at byte offset ...
Подробнее здесь: https://stackoverflow.com/questions/794 ... -code-enti