fix thread replies in matrix
This commit is contained in:
@@ -7,7 +7,6 @@ import (
|
||||
"time"
|
||||
|
||||
"maunium.net/go/mautrix/event"
|
||||
"maunium.net/go/mautrix/format"
|
||||
"maunium.net/go/mautrix/id"
|
||||
|
||||
"gitlab.com/etke.cc/postmoogle/utils"
|
||||
@@ -372,37 +371,10 @@ func (b *Bot) runSend(ctx context.Context) {
|
||||
if err != nil {
|
||||
b.Error(ctx, evt.RoomID, "cannot send email to %s: %v", to, err)
|
||||
} else {
|
||||
b.saveSentMetadata(ctx, email, &cfg)
|
||||
b.saveSentMetadata(ctx, evt.ID, email, &cfg)
|
||||
}
|
||||
}
|
||||
if len(tos) > 1 {
|
||||
b.SendNotice(ctx, evt.RoomID, "All emails were sent.")
|
||||
}
|
||||
}
|
||||
|
||||
// saveSentMetadata used to save metadata from !pm sent event to a separate notice message
|
||||
// because that metadata is needed to determine email thread relations
|
||||
func (b *Bot) saveSentMetadata(ctx context.Context, email *utils.Email, cfg *roomSettings) {
|
||||
evt := eventFromContext(ctx)
|
||||
threadID := utils.EventParent(evt.ID, evt.Content.AsMessage())
|
||||
content := email.Content(threadID, cfg.ContentOptions())
|
||||
notice := format.RenderMarkdown("Email has been sent to "+email.To, true, true)
|
||||
notice.MsgType = event.MsgNotice
|
||||
msgContent, ok := content.Parsed.(event.MessageEventContent)
|
||||
if !ok {
|
||||
b.Error(ctx, evt.RoomID, "cannot parse message")
|
||||
return
|
||||
}
|
||||
msgContent.Body = notice.Body
|
||||
msgContent.FormattedBody = notice.FormattedBody
|
||||
content.Parsed = msgContent
|
||||
msgID, err := b.lp.Send(evt.RoomID, &content)
|
||||
if err != nil {
|
||||
b.Error(ctx, evt.RoomID, "cannot parse message")
|
||||
return
|
||||
}
|
||||
if threadID != "" {
|
||||
b.setThreadID(evt.RoomID, utils.MessageID(msgID, b.domains[0]), threadID)
|
||||
}
|
||||
b.setLastEventID(evt.RoomID, threadID, msgID)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user