handlematrix: implement RoomNameHandlingNetworkAPI

This commit is contained in:
1Conan
2025-11-25 04:32:22 +08:00
parent b3f9bfb5b3
commit 74a5dfccd5
2 changed files with 44 additions and 2 deletions
+38
View File
@@ -68,6 +68,7 @@ var (
_ bridgev2.TagHandlingNetworkAPI = (*TelegramClient)(nil)
_ bridgev2.ChatViewingNetworkAPI = (*TelegramClient)(nil)
_ bridgev2.DeleteChatHandlingNetworkAPI = (*TelegramClient)(nil)
_ bridgev2.RoomNameHandlingNetworkAPI = (*TelegramClient)(nil)
)
func getMediaFilename(content *event.MessageEventContent) (filename string) {
@@ -856,3 +857,40 @@ func (t *TelegramClient) HandleMatrixDeleteChat(ctx context.Context, chat *bridg
}
return nil
}
func (t *TelegramClient) HandleMatrixRoomName(ctx context.Context, msg *bridgev2.MatrixRoomName) (bool, error) {
peerType, id, err := ids.ParsePortalID(msg.Portal.ID)
if err != nil {
return false, err
}
switch peerType {
case ids.PeerTypeChat:
_, err = t.client.API().MessagesEditChatTitle(ctx, &tg.MessagesEditChatTitleRequest{
ChatID: id,
Title: msg.Content.Name,
})
if err != nil {
return false, err
}
return true, nil
case ids.PeerTypeChannel:
accessHash, err := t.ScopedStore.GetAccessHash(ctx, peerType, id)
if err != nil {
return false, err
}
_, err = t.client.API().ChannelsEditTitle(ctx, &tg.ChannelsEditTitleRequest{
Channel: &tg.InputChannel{
ChannelID: id,
AccessHash: accessHash,
},
Title: msg.Content.Name,
})
if err != nil {
return false, err
}
return true, nil
default:
return false, fmt.Errorf("unsupported peer type %s for changing room name", peerType)
}
}