Split converting batch messages into separate function
This commit is contained in:
41
backfill.go
41
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) {
|
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))
|
evts := make([]*event.Event, 0, len(messages))
|
||||||
dbMessages := make([]database.Message, 0, len(messages))
|
dbMessages := make([]database.Message, 0, len(messages))
|
||||||
for _, msg := range messages {
|
for _, msg := range messages {
|
||||||
@@ -236,24 +258,7 @@ func (portal *Portal) forwardBatchSend(log zerolog.Logger, source *User, message
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(evts) == 0 {
|
return evts, dbMessages
|
||||||
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) deterministicEventID(messageID, partName string) id.EventID {
|
func (portal *Portal) deterministicEventID(messageID, partName string) id.EventID {
|
||||||
|
|||||||
Reference in New Issue
Block a user