diff --git a/bot/utils/formatters.py b/bot/utils/formatters.py index 3483f23..ff7b95a 100644 --- a/bot/utils/formatters.py +++ b/bot/utils/formatters.py @@ -175,7 +175,11 @@ async def send_long_message(update: Update, text: str, parse_mode: str = None, p for i, (part, has_code, code_opened, code_closed) in enumerate(parts): # Определяем parse_mode для этого сообщения - actual_parse_mode = parse_mode if parse_mode and has_code else None + # Используем parse_mode если сообщение имеет код ИЛИ если мы внутри блока кода + # Мы внутри блока кода если: предыдущее не закрыло ИЛИ (текущее открыто и не закрыто) + prev_closed = parts[i-1][3] if i > 0 else True + in_code_block = not prev_closed or (code_opened and not code_closed) + actual_parse_mode = parse_mode if parse_mode and (has_code or in_code_block) else None # Логика работы с блоками кода между сообщениями: # Если предыдущее сообщение не закрыло блок — нужно открыть в этом