add read receipts and typing notifications, closes #30
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"maunium.net/go/mautrix/event"
|
"maunium.net/go/mautrix/event"
|
||||||
"maunium.net/go/mautrix/id"
|
"maunium.net/go/mautrix/id"
|
||||||
@@ -156,6 +157,11 @@ func (b *Bot) handleCommand(ctx context.Context, evt *event.Event, commandSlice
|
|||||||
if cmd == nil {
|
if cmd == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
_, err := b.lp.GetClient().UserTyping(evt.RoomID, true, 30*time.Second)
|
||||||
|
if err != nil {
|
||||||
|
b.log.Error("cannot send typing notification: %v", err)
|
||||||
|
}
|
||||||
|
defer b.lp.GetClient().UserTyping(evt.RoomID, false, 30*time.Second) //nolint:errcheck
|
||||||
|
|
||||||
if !cmd.allowed(evt.Sender, evt.RoomID) {
|
if !cmd.allowed(evt.Sender, evt.RoomID) {
|
||||||
b.SendNotice(ctx, evt.RoomID, "not allowed to do that, kupo")
|
b.SendNotice(ctx, evt.RoomID, "not allowed to do that, kupo")
|
||||||
|
|||||||
@@ -7,6 +7,11 @@ import (
|
|||||||
|
|
||||||
func (b *Bot) handle(ctx context.Context) {
|
func (b *Bot) handle(ctx context.Context) {
|
||||||
evt := eventFromContext(ctx)
|
evt := eventFromContext(ctx)
|
||||||
|
err := b.lp.GetClient().MarkRead(evt.RoomID, evt.ID)
|
||||||
|
if err != nil {
|
||||||
|
b.log.Error("cannot send read receipt: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
content := evt.Content.AsMessage()
|
content := evt.Content.AsMessage()
|
||||||
if content == nil {
|
if content == nil {
|
||||||
b.Error(ctx, evt.RoomID, "cannot read message")
|
b.Error(ctx, evt.RoomID, "cannot read message")
|
||||||
|
|||||||
Reference in New Issue
Block a user