Implement reactions and image sync
This commit is contained in:
@@ -402,6 +402,28 @@ def _serialize_message(msg: Message) -> dict:
|
||||
receipt_payload = msg.receipt_payload or {}
|
||||
read_source_service = str(msg.read_source_service or "").strip()
|
||||
read_by_identifier = str(msg.read_by_identifier or "").strip()
|
||||
reaction_rows = []
|
||||
seen_reactions = set()
|
||||
for row in list(receipt_payload.get("reactions") or []):
|
||||
item = dict(row or {})
|
||||
if bool(item.get("removed")):
|
||||
continue
|
||||
emoji = str(item.get("emoji") or "").strip()
|
||||
if not emoji:
|
||||
continue
|
||||
actor = str(item.get("actor") or "").strip()
|
||||
source = str(item.get("source_service") or "").strip().lower()
|
||||
key = (emoji, actor, source)
|
||||
if key in seen_reactions:
|
||||
continue
|
||||
seen_reactions.add(key)
|
||||
reaction_rows.append(
|
||||
{
|
||||
"emoji": emoji,
|
||||
"actor": actor,
|
||||
"source_service": source,
|
||||
}
|
||||
)
|
||||
|
||||
return {
|
||||
"id": str(msg.id),
|
||||
@@ -427,6 +449,7 @@ def _serialize_message(msg: Message) -> dict:
|
||||
"receipt_payload": receipt_payload,
|
||||
"read_source_service": read_source_service,
|
||||
"read_by_identifier": read_by_identifier,
|
||||
"reactions": reaction_rows,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user