소스 검색

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 {