Skip to content

Commit fba7541

Browse files
committed
Add more workarounds for Conduit doing dumb stuff
Fixes mautrix/telegram#873
1 parent 116729a commit fba7541

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

mautrix/types/event/state.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,9 @@ def deserialize(cls, data: JSON) -> "StrippedStateEvent":
258258
try:
259259
event_type = EventType.find(data.get("type", None))
260260
data.get("content", {})["__mautrix_event_type"] = event_type
261-
data.get("unsigned", {}).get("prev_content", {})["__mautrix_event_type"] = event_type
261+
(data.get("unsigned") or {}).get("prev_content", {})[
262+
"__mautrix_event_type"
263+
] = event_type
262264
except ValueError:
263265
pass
264266
return super().deserialize(data)
@@ -305,7 +307,10 @@ def deserialize(cls, data: JSON) -> "StateEvent":
305307
try:
306308
event_type = EventType.find(data.get("type"), t_class=EventType.Class.STATE)
307309
data.get("content", {})["__mautrix_event_type"] = event_type
308-
if "prev_content" in data and "prev_content" not in data.get("unsigned", {}):
310+
if "prev_content" in data and "prev_content" not in (data.get("unsigned") or {}):
311+
# This if is a workaround for Conduit being extremely dumb
312+
if data.get("unsigned", {}) is None:
313+
data["unsigned"] = {}
309314
data.setdefault("unsigned", {})["prev_content"] = data["prev_content"]
310315
data.get("unsigned", {}).get("prev_content", {})["__mautrix_event_type"] = event_type
311316
except ValueError:

0 commit comments

Comments
 (0)