diff --git a/DiscordChatExporter/Services/ExportService.cs b/DiscordChatExporter/Services/ExportService.cs
index a435427f..71d7cdfb 100644
--- a/DiscordChatExporter/Services/ExportService.cs
+++ b/DiscordChatExporter/Services/ExportService.cs
@@ -1,6 +1,5 @@
using System;
using System.IO;
-using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
@@ -224,20 +223,12 @@ namespace DiscordChatExporter.Services
content = content.Replace("\n", Environment.NewLine);
// User mentions (<@id>)
- content = Regex.Replace(content, "<@(\\d*)>",
- m =>
- {
- var mentionedUser = message.MentionedUsers.First(u => u.Id == m.Groups[1].Value);
- return $"@{mentionedUser}";
- });
+ foreach (var mentionedUser in message.MentionedUsers)
+ content = content.Replace($"<@{mentionedUser.Id}>", $"@{mentionedUser}");
// Role mentions (<@&id>)
- content = Regex.Replace(content, "<@&(\\d*)>",
- m =>
- {
- var mentionedRole = message.MentionedRoles.First(r => r.Id == m.Groups[1].Value);
- return $"@{mentionedRole.Name}";
- });
+ foreach (var mentionedRole in message.MentionedRoles)
+ content = content.Replace($"<@&{mentionedRole.Id}>", $"@{mentionedRole.Name}");
// Custom emojis (<:name:id>)
content = Regex.Replace(content, "<(:.*?:)\\d*>", "$1");
@@ -259,8 +250,7 @@ namespace DiscordChatExporter.Services
content = Regex.Replace(content, "`([^`]+)`", "$1");
// URL links
- content = Regex.Replace(content, "((https?|ftp)://[^\\s/$.?#].[^\\s]*)",
- "$1");
+ content = Regex.Replace(content, "((https?|ftp)://[^\\s/$.?#].[^\\s]*)", "$1");
// Bold (**text**)
content = Regex.Replace(content, "\\*\\*([^\\*]*?)\\*\\*", "$1");
@@ -287,24 +277,22 @@ namespace DiscordChatExporter.Services
content = content.Replace("@here", "@here");
// User mentions (<@id>)
- content = Regex.Replace(content, "<@(\\d*)>",
- m =>
- {
- var mentionedUser = message.MentionedUsers.First(u => u.Id == m.Groups[1].Value);
- return $"" +
- $"@{HtmlEncode(mentionedUser.Name)}" +
- "";
- });
+ foreach (var mentionedUser in message.MentionedUsers)
+ {
+ content = content.Replace($"<@{mentionedUser.Id}>",
+ $"" +
+ $"@{HtmlEncode(mentionedUser.Name)}" +
+ "");
+ }
// Role mentions (<@&id>)
- content = Regex.Replace(content, "<@&(\\d*)>",
- m =>
- {
- var mentionedRole = message.MentionedRoles.First(r => r.Id == m.Groups[1].Value);
- return "" +
- $"@{HtmlEncode(mentionedRole.Name)}" +
- "";
- });
+ foreach (var mentionedRole in message.MentionedRoles)
+ {
+ content = content.Replace($"<@&{mentionedRole.Id}>",
+ "" +
+ $"@{HtmlEncode(mentionedRole.Name)}" +
+ "");
+ }
// Custom emojis (<:name:id>)
content = Regex.Replace(content, "<(:.*?:)(\\d*)>",