discord-jadx/app/src/main/java/com/discord/utilities/textprocessing/MessageUnparser.java
2021-08-18 09:29:27 +02:00

66 lines
3.2 KiB
Java

package com.discord.utilities.textprocessing;
import c.a.t.b.b.e;
import com.discord.api.channel.Channel;
import com.discord.api.role.GuildRole;
import com.discord.models.domain.emoji.EmojiSet;
import com.discord.models.guild.Guild;
import com.discord.models.user.User;
import com.discord.simpleast.core.node.Node;
import com.discord.simpleast.core.parser.Parser;
import com.discord.simpleast.core.parser.Rule;
import d0.t.n;
import d0.z.d.m;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
/* compiled from: MessageUnparser.kt */
public final class MessageUnparser {
public static final MessageUnparser INSTANCE = new MessageUnparser();
private static final Pattern PATTERN_CHANNEL_MENTION = Pattern.compile("^<#?(\\d+)>");
private static final Pattern PATTERN_CUSTOM_EMOJI = Pattern.compile("^<(a)?:(\\w+):(\\d+)>");
private static final Pattern PATTERN_ROLE_MENTION = Pattern.compile("^<@&?(\\d+)>");
private static final Pattern PATTERN_USER_MENTION = Pattern.compile("^<@!?(\\d+)>");
private MessageUnparser() {
}
private final <T, S> Rule<T, Node<T>, S> getChannelMentionRule(Map<Long, Channel> map) {
Pattern pattern = PATTERN_CHANNEL_MENTION;
m.checkNotNullExpressionValue(pattern, "PATTERN_CHANNEL_MENTION");
return new MessageUnparser$getChannelMentionRule$1(this, map, pattern);
}
private final <T, S> Rule<T, Node<T>, S> getCustomEmojiRule(EmojiSet emojiSet) {
Pattern pattern = PATTERN_CUSTOM_EMOJI;
m.checkNotNullExpressionValue(pattern, "PATTERN_CUSTOM_EMOJI");
return new MessageUnparser$getCustomEmojiRule$1(this, emojiSet, pattern);
}
private final <T, S> Rule<T, Node<T>, S> getRoleMentionRule(List<GuildRole> list) {
Pattern pattern = PATTERN_ROLE_MENTION;
m.checkNotNullExpressionValue(pattern, "PATTERN_ROLE_MENTION");
return new MessageUnparser$getRoleMentionRule$1(this, list, pattern);
}
private final <T, S> Rule<T, Node<T>, S> getUserMentionRule(Map<Long, ? extends User> map) {
Pattern pattern = PATTERN_USER_MENTION;
m.checkNotNullExpressionValue(pattern, "PATTERN_USER_MENTION");
return new MessageUnparser$getUserMentionRule$1(this, map, pattern);
}
public static final CharSequence unparse(String str, Guild guild, Map<Long, Channel> map, Map<Long, ? extends User> map2, EmojiSet emojiSet) {
List<GuildRole> list;
m.checkNotNullParameter(str, "rawMessageContent");
m.checkNotNullParameter(map, "channels");
m.checkNotNullParameter(map2, "users");
m.checkNotNullParameter(emojiSet, "emojiSet");
Parser parser = new Parser(false, 1, null);
MessageUnparser messageUnparser = INSTANCE;
Parser addRule = parser.addRule(messageUnparser.getUserMentionRule(map2));
if (guild == null || (list = guild.getRoles()) == null) {
list = n.emptyList();
}
return AstRenderer.render(Parser.parse$default(addRule.addRule(messageUnparser.getRoleMentionRule(list)).addRule(messageUnparser.getChannelMentionRule(map)).addRule(messageUnparser.getCustomEmojiRule(emojiSet)).addRule(e.h.d()), str, null, null, 4, null), null);
}
}