From f9007ae875d8f10e30f010414bc8bf2f9390de13 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 10 May 2020 01:23:20 +0300 Subject: [PATCH] Send read receipts asynchronously. Hopefully fixes #141 --- matrix/matrix.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/matrix/matrix.go b/matrix/matrix.go index e9a4f79..e2e182e 100644 --- a/matrix/matrix.go +++ b/matrix/matrix.go @@ -795,8 +795,13 @@ func (c *Container) HandleTyping(_ EventSource, evt *event.Event) { } func (c *Container) MarkRead(roomID id.RoomID, eventID id.EventID) { - urlPath := c.client.BuildURL("rooms", roomID, "receipt", "m.read", eventID) - _, _ = c.client.MakeRequest("POST", urlPath, struct{}{}, nil) + go func() { + defer debug.Recover() + err := c.client.MarkRead(roomID, eventID) + if err != nil { + debug.Print("Failed to mark %s in %s as read: %v", eventID, roomID, err) + } + }() } func (c *Container) PrepareMarkdownMessage(roomID id.RoomID, msgtype event.MessageType, text, html string, rel *ifc.Relation) *muksevt.Event {