decrypt parent event only when really needed, lookup threadID only when really needed
This commit is contained in:
12
bot/email.go
12
bot/email.go
@@ -165,7 +165,9 @@ func (b *Bot) SendEmailReply(ctx context.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
meta.ThreadID = b.getThreadID(evt.RoomID, meta.InReplyTo, meta.References)
|
if meta.ThreadID == "" {
|
||||||
|
meta.ThreadID = b.getThreadID(evt.RoomID, meta.InReplyTo, meta.References)
|
||||||
|
}
|
||||||
content := evt.Content.AsMessage()
|
content := evt.Content.AsMessage()
|
||||||
if meta.Subject == "" {
|
if meta.Subject == "" {
|
||||||
meta.Subject = strings.SplitN(content.Body, "\n", 1)[0]
|
meta.Subject = strings.SplitN(content.Body, "\n", 1)[0]
|
||||||
@@ -227,10 +229,12 @@ func (b *Bot) getParentEvent(evt *event.Event) (id.EventID, *event.Event) {
|
|||||||
utils.ParseContent(parentEvt, event.EventEncrypted)
|
utils.ParseContent(parentEvt, event.EventEncrypted)
|
||||||
decrypted, err := b.lp.GetMachine().DecryptMegolmEvent(evt)
|
decrypted, err := b.lp.GetMachine().DecryptMegolmEvent(evt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err != crypto.IncorrectEncryptedContentType || err != crypto.UnsupportedAlgorithm {
|
if errors.Is(err, crypto.IncorrectEncryptedContentType) || errors.Is(err, crypto.UnsupportedAlgorithm) {
|
||||||
b.log.Error("cannot decrypt parent event: %v", err)
|
utils.ParseContent(parentEvt, event.EventMessage)
|
||||||
return threadID, nil
|
return threadID, parentEvt
|
||||||
}
|
}
|
||||||
|
b.log.Error("cannot decrypt parent event: %v", err)
|
||||||
|
return threadID, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.ParseContent(decrypted, event.EventMessage)
|
utils.ParseContent(decrypted, event.EventMessage)
|
||||||
|
|||||||
Reference in New Issue
Block a user