resolve method
- String messageContent
Resolves raw messageContent
into human readable form.
Implementation
Future<String> resolve(String messageContent) async {
if (messageContent.trim().isEmpty) {
return "";
}
final messageParts = messageContent.split(" ");
final outputBuffer = StringBuffer();
for (final part in messageParts) {
outputBuffer.write(" ");
final userMatch = Regexes.userMentionRegex.firstMatch(part);
if (userMatch != null) {
outputBuffer.write(await _resoleUserMention(userMatch, part));
continue;
}
final roleMatch = Regexes.roleMentionRegex.firstMatch(part);
if (roleMatch != null) {
outputBuffer.write(await _resolveRoleMention(roleMatch, part));
continue;
}
final everyoneMatch = Regexes.everyoneMentionRegex.firstMatch(part);
if (everyoneMatch != null) {
outputBuffer.write(await _resolveEveryone(everyoneMatch, part));
continue;
}
final channelMatch = Regexes.channelMentionRegex.firstMatch(part);
if (channelMatch != null) {
outputBuffer.write(await _resolveChannel(channelMatch, part));
continue;
}
final emojiMatch = Regexes.emojiMentionRegex.firstMatch(part);
if (emojiMatch != null) {
outputBuffer.write(await _resolveEmoji(emojiMatch, part));
continue;
}
outputBuffer.write(part);
}
return outputBuffer.toString().trim();
}