Просмотр исходного кода

Fix some fields that might not exist

Tulir Asokan 4 лет назад
Родитель
Сommit
99f07bf891
2 измененных файлов с 6 добавлено и 3 удалено
  1. 1 1
      mausignald/types.py
  2. 5 2
      mautrix_signal/web/provisioning_api.py

+ 1 - 1
mausignald/types.py

@@ -196,7 +196,7 @@ class MessageData(SerializableAttrs['MessageData']):
 class SentSyncMessage(SerializableAttrs['SentSyncMessage']):
     message: MessageData
     timestamp: int
-    expiration_start_timestamp: int = attr.ib(metadata={"json": "expirationStartTimestamp"})
+    expiration_start_timestamp: Optional[int] = attr.ib(default=None, metadata={"json": "expirationStartTimestamp"})
     is_recipient_update: bool = attr.ib(default=False, metadata={"json": "isRecipientUpdate"})
     unidentified_status: Dict[str, bool] = attr.ib(factory=lambda: {})
     destination: Optional[Address] = None

+ 5 - 2
mautrix_signal/web/provisioning_api.py

@@ -100,9 +100,12 @@ class ProvisioningAPI:
         if await user.is_logged_in():
             profile = await self.bridge.signal.get_profile(username=user.username,
                                                            address=Address(number=user.username))
+            addr = profile.address if profile else None
+            number = addr.number if addr else None
+            uuid = addr.uuid if addr else None
             data["signal"] = {
-                "number": profile.address.number or user.username,
-                "uuid": str(profile.address.uuid or user.uuid or ""),
+                "number": number or user.username,
+                "uuid": str(uuid or user.uuid or ""),
                 "name": profile.name,
             }
         return web.json_response(data, headers=self._acao_headers)