fix: номер сообщения теперь добавляется после открывающего блока кода
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
0a8801afec
commit
2557440a39
|
|
@ -190,28 +190,27 @@ async def send_long_message(update: Update, text: str, parse_mode: str = None, p
|
||||||
wait_msg = None
|
wait_msg = None
|
||||||
|
|
||||||
for i, (part, has_code, code_opened, code_closed) in enumerate(parts):
|
for i, (part, has_code, code_opened, code_closed) in enumerate(parts):
|
||||||
# Добавляем номер части если их несколько
|
|
||||||
if total > 1:
|
|
||||||
header = f"({i+1}/{total}) "
|
|
||||||
if len(header) + len(part) <= MAX_MESSAGE_LENGTH:
|
|
||||||
part = header + part
|
|
||||||
|
|
||||||
# Определяем parse_mode для этого сообщения
|
# Определяем parse_mode для этого сообщения
|
||||||
actual_parse_mode = parse_mode if parse_mode and has_code else None
|
actual_parse_mode = parse_mode if parse_mode and has_code else None
|
||||||
|
|
||||||
# Логика работы с блоками кода между сообщениями:
|
# Логика работы с блоками кода между сообщениями:
|
||||||
# - Если предыдущее сообщение не закрыло блок (code_closed=False) и имело код — открываем в этом
|
# - Если предыдущее сообщение не закрыло блок — открываем в этом
|
||||||
# - Если текущее сообщение не закрывает блок (code_closed=False) и следующее имеет код — не закрываем
|
# - Если текущее не закрывает блок и следующее не имеет кода — закрываем
|
||||||
if total > 1 and actual_parse_mode and has_code:
|
if total > 1 and actual_parse_mode and has_code:
|
||||||
# Проверяем нужно ли открыть блок в начале этого сообщения
|
# Проверяем нужно ли открыть блок в начале этого сообщения
|
||||||
if i > 0 and not parts[i-1][3]: # предыдущее не закрыло блок (parts[i-1][3] = code_closed)
|
if i > 0 and not parts[i-1][3]: # предыдущее не закрыло блок (parts[i-1][3] = code_closed)
|
||||||
part = "```\n" + part
|
part = "```\n" + part
|
||||||
|
|
||||||
# Проверяем нужно ли закрыть блок в конце этого сообщения
|
# Проверяем нужно ли закрыть блок в конце этого сообщения
|
||||||
# Закрываем только если следующее сообщение НЕ имеет кода
|
|
||||||
if i < total - 1 and not code_closed and not parts[i+1][1]: # следующее не имеет кода
|
if i < total - 1 and not code_closed and not parts[i+1][1]: # следующее не имеет кода
|
||||||
part = part + "\n```"
|
part = part + "\n```"
|
||||||
|
|
||||||
|
# Добавляем номер части ПОСЛЕ работы с блоками кода
|
||||||
|
if total > 1:
|
||||||
|
header = f"({i+1}/{total}) "
|
||||||
|
if len(header) + len(part) <= MAX_MESSAGE_LENGTH:
|
||||||
|
part = header + part
|
||||||
|
|
||||||
try:
|
try:
|
||||||
await update.message.reply_text(part, parse_mode=actual_parse_mode)
|
await update.message.reply_text(part, parse_mode=actual_parse_mode)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue