瀏覽代碼

changes as discussed

Malte E 3 年之前
父節點
當前提交
08ed1ab3fd
共有 2 個文件被更改,包括 9 次插入6 次删除
  1. 3 6
      mautrix_signal/matrix.py
  2. 6 0
      mautrix_signal/portal.py

+ 3 - 6
mautrix_signal/matrix.py

@@ -196,15 +196,12 @@ class MatrixHandler(BaseMatrixHandler):
         ):
         ):
             return
             return
 
 
-        portal = await po.Portal.get_by_mxid(evt.room_id)
-        if not portal:
-            return
-
         user = await u.User.get_by_mxid(evt.sender)
         user = await u.User.get_by_mxid(evt.sender)
-        if not await user.is_logged_in() and portal.has_relay:
-            user = portal.relay_user_id
         if not user:
         if not user:
             return
             return
+        portal = await po.Portal.get_by_mxid(evt.room_id)
+        if not portal:
+            return
 
 
         if evt.type == EventType.ROOM_NAME:
         if evt.type == EventType.ROOM_NAME:
             await portal.handle_matrix_name(user, evt.content.name)
             await portal.handle_matrix_name(user, evt.content.name)

+ 6 - 0
mautrix_signal/portal.py

@@ -824,6 +824,10 @@ class Portal(DBPortal, BasePortal):
         old_users = prev_content.users if prev_content else None
         old_users = prev_content.users if prev_content else None
         new_users = levels.users
         new_users = levels.users
         changes = {}
         changes = {}
+        sender, is_relay = await self.get_relay_sender(sender, "power level change")
+        if not sender:
+            return
+
         if not old_users:
         if not old_users:
             changes = new_users
             changes = new_users
         else:
         else:
@@ -861,6 +865,7 @@ class Portal(DBPortal, BasePortal):
                     await self._update_power_levels(
                     await self._update_power_levels(
                         await self.signal.get_group(sender.username, self.chat_id)
                         await self.signal.get_group(sender.username, self.chat_id)
                     )
                     )
+                    return
         if not prev_content or levels.invite != prev_content.invite:
         if not prev_content or levels.invite != prev_content.invite:
             try:
             try:
                 update_meta = await self.signal.update_group(
                 update_meta = await self.signal.update_group(
@@ -882,6 +887,7 @@ class Portal(DBPortal, BasePortal):
                 await self._update_power_levels(
                 await self._update_power_levels(
                     await self.signal.get_group(sender.username, self.chat_id)
                     await self.signal.get_group(sender.username, self.chat_id)
                 )
                 )
+                return
         if not prev_content or levels.state_default != prev_content.state_default:
         if not prev_content or levels.state_default != prev_content.state_default:
             try:
             try:
                 update_meta = await self.signal.update_group(
                 update_meta = await self.signal.update_group(