pins: handle (un)favourite tags from the network connector
Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
This commit is contained in:
@@ -79,6 +79,7 @@ var (
|
||||
_ bridgev2.UserSearchingNetworkAPI = (*TelegramClient)(nil)
|
||||
_ bridgev2.GroupCreatingNetworkAPI = (*TelegramClient)(nil)
|
||||
_ bridgev2.MuteHandlingNetworkAPI = (*TelegramClient)(nil)
|
||||
_ bridgev2.TagHandlingNetworkAPI = (*TelegramClient)(nil)
|
||||
)
|
||||
|
||||
type UpdateDispatcher struct {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user