Selaa lähdekoodia

Fix handling read receipts where target is unknown

Tulir Asokan 3 vuotta sitten
vanhempi
sitoutus
c55cad980d
1 muutettua tiedostoa jossa 5 lisäystä ja 1 poistoa
  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 {
 	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)
 	intent := user.bridge.GetPuppetByJID(receipt.Sender).IntentFor(portal)
 	for _, msg := range markAsRead {
 	for _, msg := range markAsRead {