Revert "handletelegram: do portal re-id in background"
This reverts commit 37d34a4ab6.
This commit is contained in:
@@ -549,36 +549,31 @@ func (t *TelegramClient) handleServiceMessage(ctx context.Context, msg *tg.Messa
|
|||||||
log.Debug().
|
log.Debug().
|
||||||
Str("old_portal_id", string(eventMeta.PortalKey.ID)).
|
Str("old_portal_id", string(eventMeta.PortalKey.ID)).
|
||||||
Int64("channel_id", action.ChannelID).
|
Int64("channel_id", action.ChannelID).
|
||||||
Msg("Received chat migrate action message")
|
Msg("MessageActionChatMigrateTo")
|
||||||
// TODO this shouldn't really be in a goroutine, but it seems like there's a deadlock somewhere
|
newPortalKey := t.makePortalKeyFromID(ids.PeerTypeChannel, action.ChannelID, 0)
|
||||||
// if there's a CreateMatrixRoom call ongoing at the same time as migrateChat
|
if err := t.migrateChat(ctx, eventMeta.PortalKey, newPortalKey); err != nil {
|
||||||
// (guessing it's actually the GetChatInfo call that's getting stuck, but not sure)
|
log.Err(err).Msg("Failed to migrate chat to channel")
|
||||||
go func() {
|
return err
|
||||||
newPortalKey := t.makePortalKeyFromID(ids.PeerTypeChannel, action.ChannelID, 0)
|
}
|
||||||
if err := t.migrateChat(ctx, eventMeta.PortalKey, newPortalKey); err != nil {
|
res := t.main.Bridge.QueueRemoteEvent(t.userLogin, &simplevent.Message[any]{
|
||||||
log.Err(err).Msg("Failed to migrate chat to channel")
|
EventMeta: eventMeta.
|
||||||
return
|
WithPortalKey(newPortalKey).
|
||||||
}
|
WithStreamOrder(0).
|
||||||
t.main.Bridge.QueueRemoteEvent(t.userLogin, &simplevent.Message[any]{
|
WithType(bridgev2.RemoteEventMessage),
|
||||||
EventMeta: eventMeta.
|
ID: ids.GetMessageIDFromMessage(msg),
|
||||||
WithPortalKey(newPortalKey).
|
ConvertMessageFunc: func(ctx context.Context, portal *bridgev2.Portal, intent bridgev2.MatrixAPI, data any) (*bridgev2.ConvertedMessage, error) {
|
||||||
WithStreamOrder(0).
|
return &bridgev2.ConvertedMessage{
|
||||||
WithType(bridgev2.RemoteEventMessage),
|
Parts: []*bridgev2.ConvertedMessagePart{{
|
||||||
ID: ids.GetMessageIDFromMessage(msg),
|
Type: event.EventMessage,
|
||||||
ConvertMessageFunc: func(ctx context.Context, portal *bridgev2.Portal, intent bridgev2.MatrixAPI, data any) (*bridgev2.ConvertedMessage, error) {
|
Content: &event.MessageEventContent{
|
||||||
return &bridgev2.ConvertedMessage{
|
MsgType: event.MsgNotice,
|
||||||
Parts: []*bridgev2.ConvertedMessagePart{{
|
Body: "Upgraded this group to a supergroup",
|
||||||
Type: event.EventMessage,
|
},
|
||||||
Content: &event.MessageEventContent{
|
}},
|
||||||
MsgType: event.MsgNotice,
|
}, nil
|
||||||
Body: "Upgraded this group to a supergroup",
|
},
|
||||||
},
|
})
|
||||||
}},
|
return resultToError(res)
|
||||||
}, nil
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}()
|
|
||||||
return nil
|
|
||||||
|
|
||||||
case *tg.MessageActionTopicCreate:
|
case *tg.MessageActionTopicCreate:
|
||||||
channelPeer, _ := msg.PeerID.(*tg.PeerChannel)
|
channelPeer, _ := msg.PeerID.(*tg.PeerChannel)
|
||||||
@@ -789,7 +784,6 @@ func (t *TelegramClient) updateChannel(ctx context.Context, channel *tg.Channel)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO resync portal metadata?
|
// TODO resync portal metadata?
|
||||||
// (actually don't, that might cause deadlocks if done while the portal is fetching its own info for creation)
|
|
||||||
|
|
||||||
if !channel.Broadcast {
|
if !channel.Broadcast {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
|
|||||||
Reference in New Issue
Block a user