浏览代码

Fix handling read receipts where target is unknown

Tulir Asokan 3 年之前
父节点
当前提交
c55cad980d
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      user.go

+ 5 - 1
user.go

@@ -748,7 +748,11 @@ func (user *User) handleReceipt(receipt *events.Receipt) {
 		}
 	}
 	if receipt.Sender.User == user.JID.User {
-		user.SetLastReadTS(portal.Key, markAsRead[0].Timestamp)
+		if len(markAsRead) > 0 {
+			user.SetLastReadTS(portal.Key, markAsRead[0].Timestamp)
+		} else {
+			user.SetLastReadTS(portal.Key, receipt.Timestamp)
+		}
 	}
 	intent := user.bridge.GetPuppetByJID(receipt.Sender).IntentFor(portal)
 	for _, msg := range markAsRead {