diff --git a/bot.py b/bot.py index 6ce9e34..9310c94 100644 --- a/bot.py +++ b/bot.py @@ -1634,23 +1634,19 @@ async def _show_result_message(update: Update, command: str, output: str, error: if output: # Показываем ВЕСЬ вывод, разбивая на сообщения если нужно - # Экранируем backticks в output чтобы они не ломали блоки кода - output = output.replace("```", "\\`\\`\\`").replace("`", "\\`") + # НЕ экранируем backticks — send_long_message сам разобьёт на блоки result += f"```\n{output}\n```\n" logger.info(f"Добавлен output в результат, длина result={len(result)}") else: logger.warning("output пустой после обработки!") if error: - # Экранируем backticks в error - error = error.replace("```", "\\`\\`\\`").replace("`", "\\`") + # НЕ экранируем backticks result += f"*Ошибки:*\n```\n{error}\n```\n" result += f"\n*Код возврата:* `{returncode}`" # Экранируем специальные символы Markdown ТОЛЬКО вне блоков кода - # Блоки кода (```) уже защищены — их содержимое не трогаем - # Экранируем: * _ ( ) [ ] но не ` и не содержимое ``` result = smart_escape_markdown(result) logger.info(f"Отправляю сообщение, длина={len(result)}") await send_long_message(update, result, parse_mode="Markdown", pause_every=3)