pins: handle (un)favourite tags from the network connector

Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
Sumner Evans
2024-10-02 10:56:49 -06:00
parent 171b621999
commit abba9bcf81
2 changed files with 15 additions and 0 deletions
+1
View File
@@ -79,6 +79,7 @@ var (
_ bridgev2.UserSearchingNetworkAPI = (*TelegramClient)(nil)
_ bridgev2.GroupCreatingNetworkAPI = (*TelegramClient)(nil)
_ bridgev2.MuteHandlingNetworkAPI = (*TelegramClient)(nil)
_ bridgev2.TagHandlingNetworkAPI = (*TelegramClient)(nil)
)
type UpdateDispatcher struct {
+14
View File
@@ -12,6 +12,7 @@ import (
"github.com/gotd/td/tgerr"
"github.com/rs/zerolog"
"go.mau.fi/util/ptr"
"golang.org/x/exp/maps"
"maunium.net/go/mautrix/bridge/status"
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/bridgev2/database"
@@ -756,3 +757,16 @@ func (t *TelegramClient) HandleMute(ctx context.Context, msg *bridgev2.MatrixMut
})
return err
}
func (t *TelegramClient) HandleRoomTag(ctx context.Context, msg *bridgev2.MatrixRoomTag) error {
inputPeer, err := t.inputPeerForPortalID(ctx, msg.Portal.ID)
if err != nil {
return err
}
_, err = t.client.API().MessagesToggleDialogPin(ctx, &tg.MessagesToggleDialogPinRequest{
Pinned: slices.Contains(maps.Keys(msg.Content.Tags), event.RoomTagFavourite),
Peer: &tg.InputDialogPeer{Peer: inputPeer},
})
return err
}