148 lines
6.2 KiB
Java
148 lines
6.2 KiB
Java
package com.discord.widgets.user.search;
|
|
|
|
import com.discord.api.channel.Channel;
|
|
import com.discord.api.presence.ClientStatus;
|
|
import com.discord.models.guild.Guild;
|
|
import com.discord.models.presence.Presence;
|
|
import com.discord.widgets.user.search.WidgetGlobalSearchModel;
|
|
import d0.t.u;
|
|
import d0.z.d.m;
|
|
import java.util.Collection;
|
|
/* compiled from: WidgetGlobalSearchScoreStrategy.kt */
|
|
public final class WidgetGlobalSearchScoreStrategy {
|
|
public static final int FRECENCY_PRI_LIMIT = 50;
|
|
private static final int FUZZY_MATCH_SCORE_BASE = -100;
|
|
private static final int FUZZY_MATCH_SCORE_MAX_DEDUCTION = 20;
|
|
public static final WidgetGlobalSearchScoreStrategy INSTANCE = new WidgetGlobalSearchScoreStrategy();
|
|
private static final int MENTIONS_MATCH_SCORE = 100;
|
|
|
|
/* compiled from: WidgetGlobalSearchScoreStrategy.kt */
|
|
public enum SearchType {
|
|
USER(10, 5),
|
|
NONE(1, 1);
|
|
|
|
private final int dmChannelWeight;
|
|
private final int friendWeight;
|
|
|
|
private SearchType(int i, int i2) {
|
|
this.friendWeight = i;
|
|
this.dmChannelWeight = i2;
|
|
}
|
|
|
|
public final int getDmChannelWeight() {
|
|
return this.dmChannelWeight;
|
|
}
|
|
|
|
public final int getFriendWeight() {
|
|
return this.friendWeight;
|
|
}
|
|
}
|
|
|
|
public final /* synthetic */ class WhenMappings {
|
|
public static final /* synthetic */ int[] $EnumSwitchMapping$0;
|
|
|
|
static {
|
|
ClientStatus.values();
|
|
int[] iArr = new int[5];
|
|
$EnumSwitchMapping$0 = iArr;
|
|
iArr[ClientStatus.ONLINE.ordinal()] = 1;
|
|
iArr[ClientStatus.IDLE.ordinal()] = 2;
|
|
iArr[ClientStatus.DND.ordinal()] = 3;
|
|
}
|
|
}
|
|
|
|
private WidgetGlobalSearchScoreStrategy() {
|
|
}
|
|
|
|
/* JADX WARNING: Removed duplicated region for block: B:13:0x003a */
|
|
public final int score(WidgetGlobalSearchModel.ItemDataPayload itemDataPayload, int i, Collection<Long> collection) {
|
|
int scoreChannel;
|
|
m.checkNotNullParameter(itemDataPayload, "$this$score");
|
|
m.checkNotNullParameter(collection, "frecencyChannels");
|
|
Channel channel = itemDataPayload.getChannel();
|
|
int scoreFrecency = scoreFrecency(collection, channel != null ? channel.h() : 0);
|
|
if (itemDataPayload instanceof WidgetGlobalSearchModel.ItemUser) {
|
|
scoreChannel = scoreUser((WidgetGlobalSearchModel.ItemUser) itemDataPayload, i);
|
|
} else {
|
|
if (itemDataPayload instanceof WidgetGlobalSearchModel.ItemChannel) {
|
|
scoreChannel = scoreChannel((WidgetGlobalSearchModel.ItemChannel) itemDataPayload);
|
|
}
|
|
if (itemDataPayload.getMentions() > 0) {
|
|
scoreFrecency += itemDataPayload.getMentions() + 100;
|
|
}
|
|
return scoreMatchedResult(itemDataPayload.getMatchedResult()) + scoreFrecency;
|
|
}
|
|
scoreFrecency += scoreChannel;
|
|
if (itemDataPayload.getMentions() > 0) {
|
|
}
|
|
return scoreMatchedResult(itemDataPayload.getMatchedResult()) + scoreFrecency;
|
|
}
|
|
|
|
public final int scoreChannel(WidgetGlobalSearchModel.ItemChannel itemChannel) {
|
|
m.checkNotNullParameter(itemChannel, "$this$scoreChannel");
|
|
Guild guild = itemChannel.getGuild();
|
|
return (guild != null ? guild.getMemberCount() : 0) > 200 ? -5 : 0;
|
|
}
|
|
|
|
public final int scoreFrecency(Collection<Long> collection, long j) {
|
|
m.checkNotNullParameter(collection, "$this$scoreFrecency");
|
|
int indexOf = u.indexOf(collection, Long.valueOf(j));
|
|
if (indexOf == -1) {
|
|
return 0;
|
|
}
|
|
if (indexOf >= 0 && 5 > indexOf) {
|
|
return 60 - indexOf;
|
|
}
|
|
if (5 <= indexOf && 50 > indexOf) {
|
|
return 55 - indexOf;
|
|
}
|
|
return 2;
|
|
}
|
|
|
|
public final int scoreMatchedResult(WidgetGlobalSearchModel.MatchedResult matchedResult) {
|
|
m.checkNotNullParameter(matchedResult, "$this$scoreMatchedResult");
|
|
int firstMatchIndex = matchedResult.getFirstMatchIndex();
|
|
int i = 0;
|
|
int min = firstMatchIndex == -1 ? -100 - Math.min(matchedResult.getValue().length(), 20) : (firstMatchIndex >= 0 && 10 >= firstMatchIndex) ? 15 - matchedResult.getFirstMatchIndex() : 0;
|
|
if (matchedResult.getFirstMatchIndex() == 0) {
|
|
i = 2;
|
|
} else if (matchedResult.getFirstMatchIndex() > 0 && !Character.isLetterOrDigit(matchedResult.getValue().charAt(matchedResult.getFirstMatchIndex() - 1))) {
|
|
i = 1;
|
|
}
|
|
return min + i;
|
|
}
|
|
|
|
/* JADX WARNING: Removed duplicated region for block: B:20:0x0035 */
|
|
/* JADX WARNING: Removed duplicated region for block: B:21:0x003a */
|
|
/* JADX WARNING: Removed duplicated region for block: B:24:0x0042 */
|
|
/* JADX WARNING: Removed duplicated region for block: B:25:0x0047 */
|
|
/* JADX WARNING: Removed duplicated region for block: B:28:0x0060 */
|
|
public final int scoreUser(WidgetGlobalSearchModel.ItemUser itemUser, int i) {
|
|
int i2;
|
|
m.checkNotNullParameter(itemUser, "$this$scoreUser");
|
|
SearchType searchType = i != 1 ? SearchType.NONE : SearchType.USER;
|
|
Presence presence = itemUser.getPresence();
|
|
ClientStatus status = presence != null ? presence.getStatus() : null;
|
|
int i3 = 2;
|
|
if (status != null) {
|
|
int ordinal = status.ordinal();
|
|
if (ordinal == 0) {
|
|
i2 = 4;
|
|
} else if (ordinal == 1) {
|
|
i2 = 3;
|
|
} else if (ordinal == 2) {
|
|
i2 = 2;
|
|
}
|
|
int friendWeight = i2 + (!itemUser.isFriend() ? searchType.getFriendWeight() : 0) + (itemUser.getChannel() == null ? searchType.getDmChannelWeight() : 0);
|
|
if (!m.areEqual(itemUser.getMatchedResult().getValue(), itemUser.getUser().getUsername())) {
|
|
i3 = 0;
|
|
}
|
|
return friendWeight + i3;
|
|
}
|
|
i2 = 0;
|
|
int friendWeight = i2 + (!itemUser.isFriend() ? searchType.getFriendWeight() : 0) + (itemUser.getChannel() == null ? searchType.getDmChannelWeight() : 0);
|
|
if (!m.areEqual(itemUser.getMatchedResult().getValue(), itemUser.getUser().getUsername())) {
|
|
}
|
|
return friendWeight + i3;
|
|
}
|
|
}
|