From 1048a41c485da09ea4bf348374bc3789bdebd95d Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Mon, 17 Apr 2023 14:50:47 +0300 Subject: [PATCH] Split converting batch messages into separate function --- backfill.go | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/backfill.go b/backfill.go index 0d8a274..e165b6e 100644 --- a/backfill.go +++ b/backfill.go @@ -182,6 +182,28 @@ func (portal *Portal) sendBackfillBatch(log zerolog.Logger, source *User, messag } func (portal *Portal) forwardBatchSend(log zerolog.Logger, source *User, messages []*discordgo.Message) { + evts, dbMessages := portal.convertMessageBatch(log, source, messages) + if len(evts) == 0 { + log.Warn().Msg("Didn't get any events to backfill") + return + } + log.Info().Int("events", len(evts)).Msg("Converted messages to backfill") + resp, err := portal.MainIntent().BatchSend(portal.MXID, &mautrix.ReqBatchSend{ + BeeperNewMessages: true, + Events: evts, + }) + if err != nil { + log.Err(err).Msg("Error sending backfill batch") + return + } + for i, evtID := range resp.EventIDs { + dbMessages[i].MXID = evtID + } + portal.bridge.DB.Message.MassInsert(portal.Key, dbMessages) + log.Info().Msg("Inserted backfilled batch to database") +} + +func (portal *Portal) convertMessageBatch(log zerolog.Logger, source *User, messages []*discordgo.Message) ([]*event.Event, []database.Message) { evts := make([]*event.Event, 0, len(messages)) dbMessages := make([]database.Message, 0, len(messages)) for _, msg := range messages { @@ -236,24 +258,7 @@ func (portal *Portal) forwardBatchSend(log zerolog.Logger, source *User, message }) } } - if len(evts) == 0 { - log.Warn().Msg("Didn't get any events to backfill") - return - } - log.Info().Int("events", len(evts)).Msg("Converted messages to backfill") - resp, err := portal.MainIntent().BatchSend(portal.MXID, &mautrix.ReqBatchSend{ - BeeperNewMessages: true, - Events: evts, - }) - if err != nil { - log.Err(err).Msg("Error sending backfill batch") - return - } - for i, evtID := range resp.EventIDs { - dbMessages[i].MXID = evtID - } - portal.bridge.DB.Message.MassInsert(portal.Key, dbMessages) - log.Info().Msg("Inserted backfilled batch to database") + return evts, dbMessages } func (portal *Portal) deterministicEventID(messageID, partName string) id.EventID {