fix(lxmf_utils): improve error handling in message conversion and ensure safe decoding of title and content

This commit is contained in:
2026-01-03 23:15:58 -06:00
parent a67e7da8af
commit 4c94c69586

View File

@@ -97,8 +97,12 @@ def convert_lxmf_message_to_dict(
"next_delivery_attempt",
None,
), # attribute may not exist yet
"title": lxmf_message.title.decode("utf-8") if lxmf_message.title else "",
"content": lxmf_message.content.decode("utf-8") if lxmf_message.content else "",
"title": lxmf_message.title.decode("utf-8", errors="replace")
if lxmf_message.title
else "",
"content": lxmf_message.content.decode("utf-8", errors="replace")
if lxmf_message.content
else "",
"fields": fields,
"timestamp": lxmf_message.timestamp,
"rssi": rssi,
@@ -149,7 +153,14 @@ def convert_db_lxmf_message_to_dict(
db_lxmf_message,
include_attachments: bool = False,
):
fields = json.loads(db_lxmf_message["fields"])
try:
fields_str = db_lxmf_message.get("fields", "{}")
fields = json.loads(fields_str) if fields_str else {}
except (json.JSONDecodeError, TypeError):
fields = {}
if not isinstance(fields, dict):
fields = {}
# strip attachments if requested
if not include_attachments: