Mercurial > libervia-web
diff libervia/web/pages/chat/_browser/__init__.py @ 1613:c4407befc52a
browser (chat): fix attachments URL for messages.
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 17 Jun 2024 17:37:15 +0200 |
parents | 19c83dd943df |
children |
line wrap: on
line diff
--- a/libervia/web/pages/chat/_browser/__init__.py Wed Jun 12 23:11:08 2024 +0200 +++ b/libervia/web/pages/chat/_browser/__init__.py Mon Jun 17 17:37:15 2024 +0200 @@ -257,6 +257,17 @@ else: await cache.fill_identities([str(jid.JID(from_jid).bare)]) from_jid = from_jid.bare + attachments = extra.get("attachments", []) + for attachment in attachments: + if "url" not in attachment: + try: + attachment["url"] = next( + s['url'] for s in attachment["sources"] if 'url' in s + ) + except (StopIteration, KeyError): + log.warning( + f"An attachment has no URL: {attachment}" + ) msg_data = { "id": uid, "timestamp": extra.get("updated", timestamp), @@ -268,7 +279,7 @@ "reeceived": extra.get("received_timestamp") or timestamp, "encrypted": extra.get("encrypted", False), "received": extra.get("received", False), - "attachments": extra.get("attachments", []), + "attachments": attachments, "extra": extra } for key in ("thread", "thread_parent", "delay_sender", "info_type"):