fix(backend): shared contact card keeps its phone number in the stored message
This commit is contained in:
1 parent
850d39ad6f
commit
59d0e2c8ad
1 file changed
+17
-2
@@ -1,8 +1,23 @@
|
|||||||
|
import json
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
from pyrogram.raw.core import TLObject
|
from pyrogram.raw.core import TLObject
|
||||||
from pyrogram.types import Object
|
from pyrogram.types import Contact, Object
|
||||||
|
|
||||||
EMPTY_JSON = "{}"
|
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:
|
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)
|
||||||
Reference in new issue
Block a user