浏览代码

Add status field to message status events and update changelog

Tulir Asokan 3 年之前
父节点
当前提交
af3b9981aa
共有 3 个文件被更改,包括 14 次插入7 次删除
  1. 4 0
      CHANGELOG.md
  2. 9 6
      mautrix_signal/portal.py
  3. 1 1
      requirements.txt

+ 4 - 0
CHANGELOG.md

@@ -2,6 +2,10 @@
 
 Target signald version: [v0.21.0](https://gitlab.com/signald/signald/-/releases/0.21.0)
 
+**N.B.** This release requires a homeserver with Matrix v1.1 support, which
+bumps up the minimum homeserver versions to Synapse 1.54 and Dendrite 0.8.7.
+Minimum Conduit version remains at 0.4.0.
+
 ### Added
 * Added provisioning API for checking if a phone number is registered on Signal
 * Added admin command for linking to an existing account in signald.

+ 9 - 6
mautrix_signal/portal.py

@@ -71,6 +71,7 @@ from mautrix.types import (
     Membership,
     MessageEvent,
     MessageEventContent,
+    MessageStatus,
     MessageStatusReason,
     MessageType,
     PowerLevelStateEventContent,
@@ -357,19 +358,21 @@ class Portal(DBPortal, BasePortal):
                 rel_type=RelationType.REFERENCE,
                 event_id=event_id,
             ),
-            success=err is None,
         )
         if err:
             status.reason = MessageStatusReason.GENERIC_ERROR
             status.error = str(err)
-            status.is_certain = True
-            status.can_retry = True
             if isinstance(err, AttachmentTooLargeError):
                 status.reason = MessageStatusReason.UNSUPPORTED
-                status.can_retry = False
+                status.status = MessageStatus.FAIL
+                status.message = "too large file (maximum is 100MB)"
             elif isinstance(err, UnknownReactionTarget):
-                status.can_retry = False
-
+                status.status = MessageStatus.FAIL
+            else:
+                status.status = MessageStatus.RETRIABLE
+        else:
+            status.status = MessageStatus.SUCCESS
+        status.fill_legacy_booleans()
         await intent.send_message_event(
             room_id=self.mxid,
             event_type=EventType.BEEPER_MESSAGE_STATUS,

+ 1 - 1
requirements.txt

@@ -4,5 +4,5 @@ commonmark>=0.8,<0.10
 aiohttp>=3,<4
 yarl>=1,<2
 attrs>=19.1
-mautrix>=0.17.2,<0.18
+mautrix>=0.17.3,<0.18
 asyncpg>=0.20,<0.26