瀏覽代碼

Add logs to debug read receipts

Tulir Asokan 3 年之前
父節點
當前提交
c4a7943775
共有 3 個文件被更改,包括 7 次插入1 次删除
  1. 1 0
      database/userportal.go
  2. 4 1
      portal.go
  3. 2 0
      user.go

+ 1 - 0
database/userportal.go

@@ -51,6 +51,7 @@ func (user *User) SetLastReadTS(portal PortalKey, ts time.Time) {
 	if err != nil {
 		user.log.Warnfln("Failed to update last read timestamp: %v", err)
 	} else {
+		user.log.Debugfln("Set last read timestamp of %s in %s to %d", user.MXID, portal.String(), ts.Unix())
 		user.lastReadCache[portal] = ts
 	}
 }

+ 4 - 1
portal.go

@@ -2421,8 +2421,10 @@ func (portal *Portal) HandleMatrixReadReceipt(sender *User, eventID id.EventID,
 	}
 
 	prevTimestamp := sender.GetLastReadTS(portal.Key)
+	lastReadIsZero := false
 	if prevTimestamp.IsZero() {
 		prevTimestamp = maxTimestamp.Add(-2 * time.Second)
+		lastReadIsZero = true
 	}
 
 	messages := portal.bridge.DB.Message.GetMessagesBetween(portal.Key, prevTimestamp, maxTimestamp)
@@ -2442,7 +2444,8 @@ func (portal *Portal) HandleMatrixReadReceipt(sender *User, eventID id.EventID,
 		} // else: blank key (participant field isn't needed in direct chat read receipts)
 		groupedMessages[key] = append(groupedMessages[key], msg.JID)
 	}
-	portal.log.Debugfln("Sending read receipts by %s: %v", sender.JID, groupedMessages)
+	portal.log.Debugfln("Sending read receipts by %s (last read: %d, was zero: %t): %v",
+		sender.JID, prevTimestamp.Unix(), lastReadIsZero, groupedMessages)
 	for messageSender, ids := range groupedMessages {
 		chatJID := portal.Key.JID
 		if messageSender.Server == types.BroadcastServer {

+ 2 - 0
user.go

@@ -897,6 +897,8 @@ func (user *User) markSelfReadFull(portal *Portal) {
 	err := puppet.CustomIntent().MarkReadWithContent(portal.MXID, lastMessage.MXID, &CustomReadReceipt{DoublePuppetSource: doublePuppetValue})
 	if err != nil {
 		user.log.Warnfln("Failed to mark %s (last message) in %s as read: %v", lastMessage.MXID, portal.MXID, err)
+	} else {
+		user.log.Debugfln("Marked %s (last message) in %s as read", lastMessage.MXID, portal.MXID)
 	}
 }