This commit is contained in:
kislovdm
2026-06-12 01:10:44 +03:00
parent e7c32da1f9
commit aecfe4dedf
9 changed files with 151 additions and 43 deletions
+15
View File
@@ -16,6 +16,21 @@ def get_forward_link(message: MaxMessage) -> dict[str, Any] | None:
return link
def get_reply_target(message: MaxMessage) -> int | None:
link = getattr(message, "link", None)
if not isinstance(link, dict):
return None
if str(link.get("type", "")).upper() != "REPLY":
return None
target = link.get("messageId") or link.get("message_id")
if target is None:
return None
try:
return int(target)
except (TypeError, ValueError):
return None
def extract_forwarded_content(
message: MaxMessage,
) -> tuple[str, list[dict[str, Any]]] | None:
+3 -8
View File
@@ -12,6 +12,7 @@ from app.max_layer.formatter import (
build_chat_title,
extract_forwarded_content,
format_forwarded_text,
get_reply_target,
resolve_media,
resolve_raw_attaches,
resolve_sender_name,
@@ -179,14 +180,7 @@ class MaxListener:
except Exception:
sender_name = f"User {message.sender}"
reply_to: int | None = None
if message.options and isinstance(message.options, dict):
reply_to = message.options.get("replyTo")
if reply_to is None and message.prev_message_id:
try:
reply_to = int(message.prev_message_id)
except (TypeError, ValueError):
reply_to = None
reply_to = get_reply_target(message)
try:
if forwarded_attaches is not None:
@@ -214,6 +208,7 @@ class MaxListener:
text_len=len(effective_text),
media_count=len(media),
is_dm=is_dm,
reply_to=reply_to,
)
incoming = MaxIncomingMessage(