feat(communities): handle markdown in imported discord messages

This commit is contained in:
Pascal Precht 2022-10-28 15:35:15 +02:00 committed by r4bbit.eth
parent 006d0ba847
commit caa20e616e
2 changed files with 16 additions and 1 deletions

View File

@ -483,7 +483,14 @@ func runMentionsAndLinksVisitor(parsedText ast.Node, identity string) *MentionsA
// PrepareContent return the parsed content of the message, the line-count and whether
// is a right-to-left message
func (m *Message) PrepareContent(identity string) error {
parsedText := markdown.Parse([]byte(m.Text), nil)
var parsedText ast.Node
switch m.ContentType {
case protobuf.ChatMessage_DISCORD_MESSAGE:
parsedText = markdown.Parse([]byte(m.GetDiscordMessage().Content), nil)
default:
parsedText = markdown.Parse([]byte(m.Text), nil)
}
visitor := runMentionsAndLinksVisitor(parsedText, identity)
m.Mentions = visitor.mentions
m.Links = visitor.links

View File

@ -2419,6 +2419,14 @@ func (m *Messenger) RequestImportDiscordCommunity(request *requests.ImportDiscor
ChatMessage: chatMessage,
}
err = messageToSave.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
m.logger.Error("failed to prepare message content", zap.Error(err))
importProgress.AddTaskError(discord.ImportMessagesTask, discord.Error(err.Error()))
importProgress.UpdateTaskProgress(discord.ImportMessagesTask, progressValue)
continue
}
// Handle pin messages
if discordMessage.Type == string(discord.MessageTypeChannelPinned) && discordMessage.Reference != nil {