apkfuckery/com.discord/smali/com/discord/utilities/textprocessing/MessageUtils.smali

635 lines
15 KiB
Smali
Raw Normal View History

2019-07-24 11:27:29 +00:00
.class public final Lcom/discord/utilities/textprocessing/MessageUtils;
.super Ljava/lang/Object;
.source "MessageUtils.kt"
# static fields
.field public static final INSTANCE:Lcom/discord/utilities/textprocessing/MessageUtils;
2019-12-06 03:29:40 +00:00
.field public static final WELCOME_MESSAGES:[I
2019-07-24 11:27:29 +00:00
# direct methods
2019-12-06 03:29:40 +00:00
.method public static constructor <clinit>()V
2019-07-24 11:27:29 +00:00
.locals 1
new-instance v0, Lcom/discord/utilities/textprocessing/MessageUtils;
invoke-direct {v0}, Lcom/discord/utilities/textprocessing/MessageUtils;-><init>()V
sput-object v0, Lcom/discord/utilities/textprocessing/MessageUtils;->INSTANCE:Lcom/discord/utilities/textprocessing/MessageUtils;
const/16 v0, 0x27
new-array v0, v0, [I
fill-array-data v0, :array_0
sput-object v0, Lcom/discord/utilities/textprocessing/MessageUtils;->WELCOME_MESSAGES:[I
return-void
nop
:array_0
.array-data 4
2020-03-03 02:12:30 +00:00
0x7f1212bf
0x7f1212c0
2020-03-09 23:19:51 +00:00
0x7f1212c1
0x7f1212c2
0x7f1212c3
0x7f1212c4
0x7f1212c5
0x7f1212c6
0x7f1212c7
0x7f1212c8
0x7f1212c9
0x7f1212ca
0x7f1212cb
0x7f1212cc
0x7f1212cd
0x7f1212ce
0x7f1212cf
0x7f1212d0
0x7f1212d1
0x7f1212d2
0x7f1212d3
0x7f1212d4
0x7f1212d5
0x7f1212d6
0x7f1212d7
0x7f1212d8
0x7f1212d9
0x7f1212da
0x7f1212db
0x7f1212dc
0x7f1212dd
0x7f1212de
0x7f1212df
0x7f1212e0
0x7f1212e1
0x7f1212e2
0x7f1212e3
0x7f1212e4
0x7f1212e5
2019-07-24 11:27:29 +00:00
.end array-data
.end method
2019-12-06 03:29:40 +00:00
.method public constructor <init>()V
2019-07-24 11:27:29 +00:00
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
2020-01-16 02:27:13 +00:00
.method private final cleanEmojisInQuotedText(Ljava/lang/String;)Ljava/lang/String;
.locals 2
new-instance v0, Lkotlin/text/Regex;
const-string v1, "<(a)?:([a-zA-Z_0-9]+):(\\d+)>"
invoke-direct {v0, v1}, Lkotlin/text/Regex;-><init>(Ljava/lang/String;)V
new-instance v1, Lcom/discord/utilities/textprocessing/MessageUtils$cleanEmojisInQuotedText$1;
invoke-direct {v1, p1}, Lcom/discord/utilities/textprocessing/MessageUtils$cleanEmojisInQuotedText$1;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p1, v1}, Lkotlin/text/Regex;->replace(Ljava/lang/CharSequence;Lkotlin/jvm/functions/Function1;)Ljava/lang/String;
move-result-object p1
return-object p1
.end method
2020-01-11 03:15:11 +00:00
.method private final cleanTextOfQuotes(Ljava/lang/String;)Ljava/lang/String;
.locals 10
const/4 v0, 0x1
new-array v1, v0, [C
const/4 v2, 0x0
const/16 v3, 0xa
aput-char v3, v1, v2
const/4 v3, 0x6
2020-02-20 19:33:18 +00:00
invoke-static {p1, v1, v2, v2, v3}, Lw/a0/s;->split$default(Ljava/lang/CharSequence;[CZII)Ljava/util/List;
2020-01-11 03:15:11 +00:00
move-result-object p1
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object p1
:cond_0
:goto_0
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_1
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
move-object v4, v3
check-cast v4, Ljava/lang/String;
const/4 v5, 0x2
const-string v6, "> "
2020-02-20 19:33:18 +00:00
invoke-static {v4, v6, v2, v5}, Lw/a0/n;->startsWith$default(Ljava/lang/String;Ljava/lang/String;ZI)Z
2020-01-11 03:15:11 +00:00
move-result v4
xor-int/2addr v4, v0
if-eqz v4, :cond_0
invoke-interface {v1, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
goto :goto_0
:cond_1
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p1
:goto_1
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
2020-01-16 02:27:13 +00:00
move-result v3
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
const/4 v4, -0x1
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
if-eqz v3, :cond_3
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
move-result-object v3
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
check-cast v3, Ljava/lang/String;
2020-01-11 03:15:11 +00:00
2020-02-20 19:33:18 +00:00
invoke-static {v3}, Lw/a0/n;->isBlank(Ljava/lang/CharSequence;)Z
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
move-result v3
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
xor-int/2addr v3, v0
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
if-eqz v3, :cond_2
2020-01-11 03:15:11 +00:00
goto :goto_2
:cond_2
2020-01-16 02:27:13 +00:00
add-int/lit8 v2, v2, 0x1
2020-01-11 03:15:11 +00:00
goto :goto_1
2020-01-16 02:27:13 +00:00
:cond_3
const/4 v2, -0x1
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
:goto_2
if-ne v2, v4, :cond_4
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
const/4 p1, 0x0
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
return-object p1
2020-01-11 03:15:11 +00:00
2020-01-16 02:27:13 +00:00
:cond_4
2020-01-11 03:15:11 +00:00
invoke-interface {v1}, Ljava/util/List;->size()I
move-result p1
2020-02-29 06:28:25 +00:00
invoke-static {v2, p1}, Lw/x/f;->until(II)Lkotlin/ranges/IntRange;
2020-01-11 03:15:11 +00:00
move-result-object p1
2020-02-20 19:33:18 +00:00
invoke-static {v1, p1}, Lw/q/l;->slice(Ljava/util/List;Lkotlin/ranges/IntRange;)Ljava/util/List;
2020-01-11 03:15:11 +00:00
move-result-object v2
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
const/4 v8, 0x0
const/16 v9, 0x3e
const-string v3, "\n"
2020-02-20 19:33:18 +00:00
invoke-static/range {v2 .. v9}, Lw/q/l;->joinToString$default(Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;I)Ljava/lang/String;
2020-01-11 03:15:11 +00:00
move-result-object p1
return-object p1
.end method
.method private final formatTextAsQuote(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.locals 11
const-string v0, "\n"
filled-new-array {v0}, [Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
const/4 v2, 0x6
2020-02-20 19:33:18 +00:00
invoke-static {p1, v0, v1, v1, v2}, Lw/a0/s;->split$default(Ljava/lang/CharSequence;[Ljava/lang/String;ZII)Ljava/util/List;
2020-01-11 03:15:11 +00:00
move-result-object v3
sget-object v9, Lcom/discord/utilities/textprocessing/MessageUtils$formatTextAsQuote$formattedText$1;->INSTANCE:Lcom/discord/utilities/textprocessing/MessageUtils$formatTextAsQuote$formattedText$1;
const-string v4, ""
const/4 v5, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
const/4 v8, 0x0
const/16 v10, 0x1e
2020-02-20 19:33:18 +00:00
invoke-static/range {v3 .. v10}, Lw/q/l;->joinToString$default(Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;I)Ljava/lang/String;
2020-01-11 03:15:11 +00:00
move-result-object p1
if-eqz p2, :cond_0
invoke-static {p1, p2}, Le/e/b/a/a;->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
:cond_0
return-object p1
.end method
2019-07-24 11:27:29 +00:00
.method public static final getNickOrUsernames(Lcom/discord/models/domain/ModelMessage;Lcom/discord/models/domain/ModelChannel;Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/discord/models/domain/ModelMessage;",
"Lcom/discord/models/domain/ModelChannel;",
"Ljava/util/Map<",
"Ljava/lang/Long;",
"+",
"Lcom/discord/models/domain/ModelGuildMember$Computed;",
">;",
"Ljava/util/Map<",
"Ljava/lang/Long;",
"+",
"Lcom/discord/models/domain/ModelChannel$RecipientNick;",
">;)",
"Ljava/util/Map<",
"Ljava/lang/Long;",
"Ljava/lang/String;",
">;"
}
.end annotation
2019-12-06 03:29:40 +00:00
const/4 v0, 0x0
2019-07-24 11:27:29 +00:00
2019-12-06 03:29:40 +00:00
if-eqz p0, :cond_2
2019-07-24 11:27:29 +00:00
2019-12-06 03:29:40 +00:00
if-eqz p2, :cond_1
2019-07-24 11:27:29 +00:00
2019-12-06 03:29:40 +00:00
if-eqz p3, :cond_0
2019-07-24 11:27:29 +00:00
invoke-virtual {p0}, Lcom/discord/models/domain/ModelMessage;->getMentions()Ljava/util/List;
move-result-object v0
const-string v1, "message.mentions"
2020-02-20 19:33:18 +00:00
invoke-static {v0, v1}, Lw/u/b/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
2019-07-24 11:27:29 +00:00
invoke-virtual {p0}, Lcom/discord/models/domain/ModelMessage;->getAuthor()Lcom/discord/models/domain/ModelUser;
move-result-object p0
2020-02-20 19:33:18 +00:00
invoke-static {v0, p0}, Lw/q/l;->plus(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/List;
2019-07-24 11:27:29 +00:00
move-result-object p0
invoke-static {p0, p1, p2, p3}, Lcom/discord/utilities/channel/ChannelUtils;->getNickOrUsernames(Ljava/lang/Iterable;Lcom/discord/models/domain/ModelChannel;Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map;
move-result-object p0
return-object p0
2019-12-06 03:29:40 +00:00
:cond_0
const-string p0, "nicks"
2020-02-20 19:33:18 +00:00
invoke-static {p0}, Lw/u/b/j;->a(Ljava/lang/String;)V
2019-12-06 03:29:40 +00:00
throw v0
:cond_1
const-string p0, "channelMembers"
2020-02-20 19:33:18 +00:00
invoke-static {p0}, Lw/u/b/j;->a(Ljava/lang/String;)V
2019-12-06 03:29:40 +00:00
throw v0
:cond_2
const-string p0, "message"
2020-02-20 19:33:18 +00:00
invoke-static {p0}, Lw/u/b/j;->a(Ljava/lang/String;)V
2019-12-06 03:29:40 +00:00
throw v0
2019-07-24 11:27:29 +00:00
.end method
.method public static synthetic getNickOrUsernames$default(Lcom/discord/models/domain/ModelMessage;Lcom/discord/models/domain/ModelChannel;Ljava/util/Map;Ljava/util/Map;ILjava/lang/Object;)Ljava/util/Map;
.locals 0
and-int/lit8 p4, p4, 0x8
if-eqz p4, :cond_0
2020-02-20 19:33:18 +00:00
invoke-static {}, Lw/q/l;->emptyMap()Ljava/util/Map;
2019-07-24 11:27:29 +00:00
move-result-object p3
:cond_0
invoke-static {p0, p1, p2, p3}, Lcom/discord/utilities/textprocessing/MessageUtils;->getNickOrUsernames(Lcom/discord/models/domain/ModelMessage;Lcom/discord/models/domain/ModelChannel;Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map;
move-result-object p0
return-object p0
.end method
.method public static final getSystemMessageUserJoin(Landroid/content/Context;J)I
.locals 3
2019-12-06 03:29:40 +00:00
const/4 v0, 0x0
2019-07-24 11:27:29 +00:00
2019-12-06 03:29:40 +00:00
if-eqz p0, :cond_4
2019-07-24 11:27:29 +00:00
2019-12-06 03:29:40 +00:00
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
2019-07-24 11:27:29 +00:00
const/16 v2, 0x18
2019-12-06 03:29:40 +00:00
if-lt v1, v2, :cond_0
2019-07-24 11:27:29 +00:00
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object p0
if-eqz p0, :cond_1
invoke-virtual {p0}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration;
move-result-object p0
if-eqz p0, :cond_1
invoke-virtual {p0}, Landroid/content/res/Configuration;->getLocales()Landroid/os/LocaleList;
move-result-object p0
if-eqz p0, :cond_1
2019-12-06 03:29:40 +00:00
const/4 v1, 0x0
2019-07-24 11:27:29 +00:00
2019-12-06 03:29:40 +00:00
invoke-virtual {p0, v1}, Landroid/os/LocaleList;->get(I)Ljava/util/Locale;
2019-07-24 11:27:29 +00:00
move-result-object p0
goto :goto_0
:cond_0
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object p0
if-eqz p0, :cond_1
invoke-virtual {p0}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration;
move-result-object p0
if-eqz p0, :cond_1
iget-object p0, p0, Landroid/content/res/Configuration;->locale:Ljava/util/Locale;
goto :goto_0
:cond_1
2019-12-06 03:29:40 +00:00
move-object p0, v0
2019-07-24 11:27:29 +00:00
:goto_0
2019-12-06 03:29:40 +00:00
new-instance v1, Ljava/util/Locale;
2019-07-24 11:27:29 +00:00
const-string v2, "en"
2019-12-06 03:29:40 +00:00
invoke-direct {v1, v2}, Ljava/util/Locale;-><init>(Ljava/lang/String;)V
2019-07-24 11:27:29 +00:00
if-eqz p0, :cond_2
invoke-virtual {p0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String;
2019-12-06 03:29:40 +00:00
move-result-object v0
2019-07-24 11:27:29 +00:00
:cond_2
2019-12-06 03:29:40 +00:00
invoke-virtual {v1}, Ljava/util/Locale;->getLanguage()Ljava/lang/String;
2019-07-24 11:27:29 +00:00
move-result-object p0
2020-02-20 19:33:18 +00:00
invoke-static {v0, p0}, Lw/u/b/j;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
2019-07-24 11:27:29 +00:00
move-result p0
xor-int/lit8 p0, p0, 0x1
if-eqz p0, :cond_3
const-wide/16 p0, 0x0
goto :goto_1
:cond_3
invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
2020-01-10 03:40:06 +00:00
move-result-object p0
2019-07-24 11:27:29 +00:00
2020-01-10 03:40:06 +00:00
invoke-static {p0}, Lcom/discord/utilities/time/TimeUtils;->parseSnowflake(Ljava/lang/Long;)J
2019-07-24 11:27:29 +00:00
move-result-wide p0
sget-object p2, Lcom/discord/utilities/textprocessing/MessageUtils;->WELCOME_MESSAGES:[I
array-length p2, p2
int-to-long v0, p2
rem-long/2addr p0, v0
:goto_1
sget-object p2, Lcom/discord/utilities/textprocessing/MessageUtils;->WELCOME_MESSAGES:[I
long-to-int p1, p0
aget p0, p2, p1
return p0
2019-12-06 03:29:40 +00:00
:cond_4
const-string p0, "context"
2020-02-20 19:33:18 +00:00
invoke-static {p0}, Lw/u/b/j;->a(Ljava/lang/String;)V
2019-12-06 03:29:40 +00:00
throw v0
2019-07-24 11:27:29 +00:00
.end method
2020-01-16 02:27:13 +00:00
# virtual methods
.method public final createQuotedText(Lcom/discord/models/domain/ModelMessage;Lcom/discord/models/domain/ModelChannel;)Ljava/lang/String;
.locals 3
const/4 v0, 0x0
if-eqz p1, :cond_3
if-eqz p2, :cond_2
invoke-virtual {p1}, Lcom/discord/models/domain/ModelMessage;->getContent()Ljava/lang/String;
move-result-object v1
const-string v2, "message.content"
2020-02-20 19:33:18 +00:00
invoke-static {v1, v2}, Lw/u/b/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
2020-01-16 02:27:13 +00:00
invoke-direct {p0, v1}, Lcom/discord/utilities/textprocessing/MessageUtils;->cleanTextOfQuotes(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
if-eqz v1, :cond_1
invoke-direct {p0, v1}, Lcom/discord/utilities/textprocessing/MessageUtils;->cleanEmojisInQuotedText(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {p2}, Lcom/discord/models/domain/ModelChannel;->isDM()Z
move-result p2
if-eqz p2, :cond_0
goto :goto_0
:cond_0
const/16 p2, 0x40
invoke-static {p2}, Le/e/b/a/a;->a(C)Ljava/lang/StringBuilder;
move-result-object p2
invoke-virtual {p1}, Lcom/discord/models/domain/ModelMessage;->getAuthor()Lcom/discord/models/domain/ModelUser;
move-result-object p1
const-string v0, "message.author"
2020-02-20 19:33:18 +00:00
invoke-static {p1, v0}, Lw/u/b/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
2020-01-16 02:27:13 +00:00
invoke-virtual {p1}, Lcom/discord/models/domain/ModelUser;->getUserNameWithDiscriminator()Ljava/lang/String;
move-result-object p1
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 p1, 0x20
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
:goto_0
invoke-direct {p0, v1, v0}, Lcom/discord/utilities/textprocessing/MessageUtils;->formatTextAsQuote(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
return-object p1
:cond_1
return-object v0
:cond_2
const-string p1, "channel"
2020-02-20 19:33:18 +00:00
invoke-static {p1}, Lw/u/b/j;->a(Ljava/lang/String;)V
2020-01-16 02:27:13 +00:00
throw v0
:cond_3
const-string p1, "message"
2020-02-20 19:33:18 +00:00
invoke-static {p1}, Lw/u/b/j;->a(Ljava/lang/String;)V
2020-01-16 02:27:13 +00:00
throw v0
.end method
.method public final isContentQuotable(Lcom/discord/models/domain/ModelMessage;)Z
.locals 1
2020-01-18 01:53:20 +00:00
if-eqz p1, :cond_2
2020-01-16 02:27:13 +00:00
invoke-virtual {p1}, Lcom/discord/models/domain/ModelMessage;->getContent()Ljava/lang/String;
move-result-object p1
2020-01-18 01:53:20 +00:00
const/4 v0, 0x0
if-nez p1, :cond_0
2020-01-16 02:27:13 +00:00
2020-01-18 01:53:20 +00:00
goto :goto_0
2020-01-16 02:27:13 +00:00
2020-01-18 01:53:20 +00:00
:cond_0
2020-01-16 02:27:13 +00:00
invoke-direct {p0, p1}, Lcom/discord/utilities/textprocessing/MessageUtils;->cleanTextOfQuotes(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
2020-01-18 01:53:20 +00:00
if-eqz p1, :cond_1
2020-01-16 02:27:13 +00:00
2020-01-18 01:53:20 +00:00
const/4 v0, 0x1
2020-01-16 02:27:13 +00:00
2020-01-18 01:53:20 +00:00
:cond_1
2020-01-16 02:27:13 +00:00
:goto_0
2020-01-18 01:53:20 +00:00
return v0
2020-01-16 02:27:13 +00:00
2020-01-18 01:53:20 +00:00
:cond_2
2020-01-16 02:27:13 +00:00
const-string p1, "message"
2020-02-20 19:33:18 +00:00
invoke-static {p1}, Lw/u/b/j;->a(Ljava/lang/String;)V
2020-01-16 02:27:13 +00:00
const/4 p1, 0x0
throw p1
.end method