Explorar o código

Fix handling read receipts where target is unknown

Tulir Asokan %!s(int64=3) %!d(string=hai) anos
pai
achega
c55cad980d
Modificáronse 1 ficheiros con 5 adicións e 1 borrados
  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 {