fix(tg): kind нетекстовых сообщений в MessageReceived (стикер/фото/голос) + caption как text — пустые text больше не выглядят загадкой

This commit is contained in:
Simbiot Harness 2026-09-29 17:08:12 +00:00
parent bdccf3f903
commit 728ebb86c0

View file

@ -56,13 +56,31 @@ def receive_message(update: dict):
msg = update.get("message") or update.get("edited_message") or {} msg = update.get("message") or update.get("edited_message") or {}
chat = msg.get("chat") or {} chat = msg.get("chat") or {}
user = msg.get("from") or {} user = msg.get("from") or {}
# нетекстовые сообщения: помечаем, что это (стикер/фото/голос/…),
# иначе пустой text выглядит как «пустое сообщение» и триаж не понимает, что случилось
kind = "text"
if msg.get("sticker"):
kind = "sticker"
elif msg.get("photo"):
kind = "photo"
elif msg.get("voice"):
kind = "voice"
elif msg.get("video_note") or msg.get("video"):
kind = "video"
elif msg.get("audio"):
kind = "audio"
elif msg.get("document"):
kind = "document"
elif msg.get("animation"):
kind = "animation"
data = { data = {
"update_id": update["update_id"], "update_id": update["update_id"],
"chat_id": chat.get("id"), "chat_id": chat.get("id"),
"user_id": user.get("id"), "user_id": user.get("id"),
"username": user.get("username"), "username": user.get("username"),
"first_name": user.get("first_name"), "first_name": user.get("first_name"),
"text": (msg.get("text") or "")[:4000], "text": (msg.get("text") or msg.get("caption") or "")[:4000],
"kind": kind,
"date": msg.get("date"), "date": msg.get("date"),
} }
es.append_event("inbox", f"m-{update['update_id']}", "MessageReceived", data) es.append_event("inbox", f"m-{update['update_id']}", "MessageReceived", data)