From 59d0e2c8ad12a52337ff56249a0ea21ad683dd50 Mon Sep 17 00:00:00 2001 From: h Date: Wed, 14 Oct 2026 05:25:42 +0200 Subject: [PATCH] fix(backend): shared contact card keeps its phone number in the stored message --- backend/src/userbot/modules/raw_json.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/backend/src/userbot/modules/raw_json.py b/backend/src/userbot/modules/raw_json.py index 71139f4..adff2b0 100644 --- a/backend/src/userbot/modules/raw_json.py +++ b/backend/src/userbot/modules/raw_json.py @@ -1,8 +1,23 @@ +import json +from typing import Any + from pyrogram.raw.core import TLObject -from pyrogram.types import Object +from pyrogram.types import Contact, Object EMPTY_JSON = "{}" +PHONE_KEY = "phone_number" + + +def _default(obj: Any) -> Any: # noqa: ANN401 + if isinstance(obj, TLObject): + return TLObject.default(obj) + data = Object.default(obj) + if isinstance(obj, Contact) and isinstance(data, dict) and PHONE_KEY in data: + data[PHONE_KEY] = obj.phone_number + return data def raw_json(obj: Object | TLObject | None) -> str: - return EMPTY_JSON if obj is None else str(obj) + if obj is None: + return EMPTY_JSON + return json.dumps(obj, indent=4, default=_default, ensure_ascii=False)