diff --git a/bot/utils/formatters.py b/bot/utils/formatters.py index bfc1fac..8c7c487 100644 --- a/bot/utils/formatters.py +++ b/bot/utils/formatters.py @@ -138,7 +138,7 @@ async def send_long_message(update: Update, text: str, parse_mode: str = None): parts = split_message(text) total = len(parts) - for i, (part, has_markdown) in enumerate(parts): + for i, (part, has_code) in enumerate(parts): # Добавляем номер части если их несколько if total > 1: header = f"({i+1}/{total}) " @@ -146,11 +146,16 @@ async def send_long_message(update: Update, text: str, parse_mode: str = None): part = header + part # Определяем parse_mode для этого сообщения - # Если у сообщения есть блоки кода — используем Markdown - # Если нет — отправляем без разметки (безопаснее) - if has_markdown and parse_mode: + # Если передан parse_mode и нет проблем с блоками кода — используем его + # Если блок кода разорван — отправляем без Markdown для этой части + if parse_mode and has_code: + # Сообщение содержит полный блок кода — используем Markdown + actual_parse_mode = parse_mode + elif parse_mode and not has_code: + # Сообщение без блоков кода — всё равно используем Markdown для другого форматирования actual_parse_mode = parse_mode else: + # Нет parse_mode или проблемы с кодом actual_parse_mode = None try: