fix(telegram): escape journal html content

This commit is contained in:
2026-07-03 11:06:04 +03:00
parent a27774fd48
commit f6029372ef
2 changed files with 11 additions and 6 deletions

View File

@@ -183,7 +183,7 @@ async def _show_journal_page(
await target_message.edit_text(
text,
reply_markup=kb,
parse_mode=None,
parse_mode="HTML",
)
except TelegramBadRequest as exc:
if "message is not modified" in str(exc).lower():
@@ -198,7 +198,7 @@ async def _show_journal_page(
sent_message = await target_message.answer(
text,
reply_markup=kb,
parse_mode=None,
parse_mode="HTML",
)
_register_journal_screen(sent_message)

View File

@@ -3,6 +3,7 @@
from __future__ import annotations
from datetime import datetime
from html import escape
from zoneinfo import ZoneInfo
from aiogram.types import InlineKeyboardMarkup
@@ -67,6 +68,10 @@ def build_keyboard(
return kb.as_markup()
def _html(value: object) -> str:
return escape(str(value or ""), quote=False)
def build_actions_keyboard() -> InlineKeyboardMarkup:
# Первый экран экспорта: выбираем, что именно экспортировать.
kb = InlineKeyboardBuilder()
@@ -233,8 +238,8 @@ def _render_auto_signal(
) -> list[str]:
level = str(event.get("level") or "INFO").upper()
icon = LEVEL_ICONS.get(level, "")
title = _event_title(event.get("event_type"))
message = _humanize_message(event.get("message"))
title = _html(_event_title(event.get("event_type")))
message = _html(_humanize_message(event.get("message")))
lines = [
f"{icon} <b>{level}</b> · {title}",
@@ -253,8 +258,8 @@ def _render_default_event(
) -> list[str]:
level = str(event.get("level") or "INFO").upper()
icon = LEVEL_ICONS.get(level, "")
title = _event_title(event.get("event_type"))
message = _humanize_message(event.get("message"))
title = _html(_event_title(event.get("event_type")))
message = _html(_humanize_message(event.get("message")))
lines = [
f"{icon} <b>{level}</b> · {title}",