577 lines
17 KiB
TypeScript
577 lines
17 KiB
TypeScript
// Metro module 10103 (f10104).
|
|
import ChannelStore from "../../stores/ChannelStore";
|
|
import GuildChannelStore from "../../stores/GuildChannelStore";
|
|
import GuildNSFWAgreeStore from "../../stores/GuildNSFWAgreeStore";
|
|
import RelationshipStore from "../../stores/RelationshipStore";
|
|
import "../../stores/SelectedChannelStore";
|
|
import UserStore from "../../stores/UserStore";
|
|
import { SearchTabs } from "./SearchConstants";
|
|
import { IS_SEARCH_ANSWER_TOKEN, IS_SEARCH_FILTER_TOKEN, SearchModes, SearchPopoutModes, SearchTokenTypes, SearchTypes, ME } from "../../Constants";
|
|
import Module3771 from "../../_bundle/Module3771";
|
|
import { intl, t } from "../../intl/index.native";
|
|
import SearchTokens, { isSearchFilterTokenType, rebuildSearchTokenConfigs, buildCrossDMSearchTokensConfig } from "./tokens/SearchTokens";
|
|
import SnowflakeUtils from "../../utils/SnowflakeUtils";
|
|
import QueryTokenizer from "../../lib/QueryTokenizer";
|
|
import Module12 from "../../_bundle/Module12";
|
|
import SearchActionCreators from "./SearchActionCreators";
|
|
import { computeChannelName } from "../channel/useChannelName";
|
|
import UserUtils from "../../utils/UserUtils";
|
|
function $mk83946() {
|
|
return (a0, a1) => `\\${a1}`;
|
|
}
|
|
ME;
|
|
let c6723_16 = 2592000;
|
|
let c6723_17 = 31536000;
|
|
const r45 = {};
|
|
r45[SearchTokenTypes.FILTER_BEFORE] = true;
|
|
r45[SearchTokenTypes.FILTER_AFTER] = true;
|
|
r45[SearchTokenTypes.FILTER_ON] = true;
|
|
let c6723_18 = r45;
|
|
let c6723_19 = new QueryTokenizer();
|
|
let c6723_20 = new QueryTokenizer();
|
|
export function getSearchContextId(a0) {
|
|
const type = a0.type;
|
|
if (SearchTypes.GUILD === type) {
|
|
return a0.guildId;
|
|
}
|
|
if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.CHANNEL !== type && SearchTypes.THREAD !== type) {
|
|
if (SearchTypes.DMS === type) {
|
|
return a0.type;
|
|
}
|
|
return void 0;
|
|
}
|
|
return a0.channelId;
|
|
}
|
|
export function getSearchHistoryStateId(a0) {
|
|
let guildId;
|
|
L8: {
|
|
const type = a0.type;
|
|
if (SearchTypes.GUILD === type) {
|
|
guildId = a0.guildId;
|
|
} else {
|
|
if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.CHANNEL !== type && SearchTypes.THREAD !== type) {
|
|
const DMS = SearchTypes.DMS;
|
|
guildId = void 0;
|
|
if (DMS !== type) {
|
|
break L8;
|
|
}
|
|
guildId = a0.type;
|
|
break L8;
|
|
}
|
|
guildId = a0.channelId;
|
|
}
|
|
}
|
|
return guildId;
|
|
}
|
|
export function getSearchTabFetchId(a0, a1, a2) {
|
|
let guildId;
|
|
L8: {
|
|
const type = a0.type;
|
|
if (SearchTypes.GUILD === type) {
|
|
guildId = a0.guildId;
|
|
} else {
|
|
if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.CHANNEL !== type && SearchTypes.THREAD !== type) {
|
|
const DMS = SearchTypes.DMS;
|
|
guildId = void 0;
|
|
if (DMS !== type) {
|
|
break L8;
|
|
}
|
|
guildId = a0.type;
|
|
break L8;
|
|
}
|
|
guildId = a0.channelId;
|
|
}
|
|
}
|
|
return `${guildId}-${a1}-${a2}`;
|
|
}
|
|
export function getChannelActiveAgoTimestamp(a0) {
|
|
const r19 = Module3771().diff(Module3771(a0), "s");
|
|
if (r19 > c6723_17) {
|
|
return intl.formatToPlainString(t["7th+Mf"], {
|
|
count: Math.round(r19 / c6723_17)
|
|
});
|
|
}
|
|
if (r19 > c6723_16) {
|
|
return intl.formatToPlainString(t.g2uHTD, {
|
|
count: Math.round(r19 / c6723_16)
|
|
});
|
|
}
|
|
if (r19 > 172800) {
|
|
return intl.formatToPlainString(t.HNgi95, {
|
|
count: Math.round(r19 / 86400)
|
|
});
|
|
}
|
|
if (r19 > 86400) {
|
|
return intl.string(t.uNkIhT);
|
|
}
|
|
if (r19 > 3600) {
|
|
return intl.formatToPlainString(t.WJBWP1, {
|
|
count: Math.round(r19 / 3600)
|
|
});
|
|
}
|
|
if (r19 > 60) {
|
|
return intl.formatToPlainString(t.CbRfwg, {
|
|
count: Math.round(r19 / 60)
|
|
});
|
|
}
|
|
return intl.string(t["5Ldpkc"]);
|
|
}
|
|
export function getIndexingErrorText({ type }) {
|
|
if (SearchTypes.CHANNEL === type) {
|
|
return intl.string(t.Q0JJjv);
|
|
}
|
|
if (SearchTypes.DMS === type) {
|
|
return intl.string(t.Br0xJA);
|
|
}
|
|
if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.GUILD !== type && SearchTypes.THREAD !== type) {
|
|
return void 0;
|
|
}
|
|
return intl.string(t.AXPbZr);
|
|
}
|
|
export function getGuildIdFromSearchContext(a0) {
|
|
const type = a0.type;
|
|
if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.GUILD !== type && SearchTypes.THREAD !== type) {
|
|
if (SearchTypes.CHANNEL === type) {
|
|
let r15 = ChannelStore.getChannel(a0.channelId)?.guild_id;
|
|
if (r15 == null) {
|
|
r15 = null;
|
|
}
|
|
return r15;
|
|
}
|
|
return null;
|
|
}
|
|
return a0.guildId;
|
|
}
|
|
export function isGuildLikeSearchContext(a0) {
|
|
return a0.type === SearchTypes.GUILD || a0.type === SearchTypes.GUILD_CHANNEL || a0.type === SearchTypes.THREAD;
|
|
}
|
|
export function getChannelIdFromSearchContext(a0) {
|
|
const type = a0.type;
|
|
if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.CHANNEL !== type && SearchTypes.THREAD !== type) {
|
|
return null;
|
|
}
|
|
return a0.channelId;
|
|
}
|
|
export function getTabTitle(a0) {
|
|
if (SearchTabs.RECENT === a0) {
|
|
return intl.string(t.tWnHcL);
|
|
}
|
|
if (SearchTabs.MESSAGES === a0) {
|
|
return intl.string(t.dvZAkp);
|
|
}
|
|
if (SearchTabs.PEOPLE === a0) {
|
|
return intl.string(t["GFd/I5"]);
|
|
}
|
|
if (SearchTabs.MEDIA === a0) {
|
|
return intl.string(t["Aw9+/M"]);
|
|
}
|
|
if (SearchTabs.PINS === a0) {
|
|
return intl.string(t["/MoGoB"]);
|
|
}
|
|
if (SearchTabs.LINKS === a0) {
|
|
return intl.string(t.DFSvTt);
|
|
}
|
|
if (SearchTabs.FILES === a0) {
|
|
return intl.string(t["WgVYR/"]);
|
|
}
|
|
if (SearchTabs.GUILD_CHANNELS === a0) {
|
|
return intl.string(t.OGiMXJ);
|
|
}
|
|
if (SearchTabs.MEMBERS === a0) {
|
|
return intl.string(t["9Oq93m"]);
|
|
}
|
|
if (SearchTabs.THREADS === a0) {
|
|
return intl.string(t.B2panI);
|
|
}
|
|
}
|
|
export function searchModeToSearchQueryParams(a0) {
|
|
if (SearchModes.MOST_RELEVANT === a0) {
|
|
return {
|
|
sort_by: "relevance",
|
|
sort_order: "desc"
|
|
};
|
|
}
|
|
if (SearchModes.OLDEST === a0) {
|
|
return {
|
|
sort_by: "timestamp",
|
|
sort_order: "asc"
|
|
};
|
|
}
|
|
SearchModes.NEWEST;
|
|
return {
|
|
sort_by: "timestamp",
|
|
sort_order: "desc"
|
|
};
|
|
}
|
|
export function searchQueryParamsToSearchMode(a0) {
|
|
let MOST_RELEVANT;
|
|
L10: {
|
|
if (a0.sort_by != null && a0.sort_order != null) {
|
|
if (a0.sort_by === "relevance") {
|
|
MOST_RELEVANT = SearchModes.MOST_RELEVANT;
|
|
break L10;
|
|
}
|
|
if (a0.sort_order === "asc") {
|
|
MOST_RELEVANT = SearchModes.OLDEST;
|
|
break L10;
|
|
}
|
|
MOST_RELEVANT = SearchModes.NEWEST;
|
|
} else {
|
|
MOST_RELEVANT = SearchModes.NEWEST;
|
|
}
|
|
}
|
|
return MOST_RELEVANT;
|
|
}
|
|
export function getSearchOptionAnswer(a0) {
|
|
if (SearchTokenTypes.FILTER_FROM === a0) {
|
|
return intl.string(t.E466pL);
|
|
}
|
|
if (SearchTokenTypes.FILTER_MENTIONS === a0) {
|
|
return intl.string(t.BYvFWl);
|
|
}
|
|
if (SearchTokenTypes.FILTER_HAS === a0) {
|
|
return intl.string(t.bhSYbc);
|
|
}
|
|
if (SearchTokenTypes.FILTER_BEFORE !== a0 && SearchTokenTypes.FILTER_ON !== a0 && SearchTokenTypes.FILTER_AFTER !== a0) {
|
|
if (SearchTokenTypes.FILTER_IN === a0) {
|
|
return intl.string(t["GpM+/7"]);
|
|
}
|
|
if (SearchTokenTypes.FILTER_LINK_FROM === a0) {
|
|
return intl.string(t.FdDTni);
|
|
}
|
|
if (SearchTokenTypes.FILTER_FILE_TYPE === a0) {
|
|
return intl.string(t.FXcAFe);
|
|
}
|
|
if (SearchTokenTypes.FILTER_FILE_NAME === a0) {
|
|
return intl.string(t.uAbFDM);
|
|
}
|
|
if (SearchTokenTypes.FILTER_PINNED === a0) {
|
|
return intl.string(t.UJxL3V);
|
|
}
|
|
if (SearchTokenTypes.FILTER_AUTHOR_TYPE === a0) {
|
|
return intl.string(t.qCQzBl);
|
|
}
|
|
return void 0;
|
|
}
|
|
return intl.string(t.Zbbc1E);
|
|
}
|
|
export { c6723_18 as ShowDatePicker };
|
|
export function setIncludeNSFW(a0, a1) {
|
|
if (GuildNSFWAgreeStore.didAgree(a1)) {
|
|
const currentUser = UserStore.getCurrentUser();
|
|
if (currentUser == null) {
|
|
return void 0;
|
|
}
|
|
a0.include_nsfw = currentUser.nsfwAllowed == null || currentUser.nsfwAllowed;
|
|
}
|
|
}
|
|
export function getSearchQueryFromTokens(a0) {
|
|
const r0 = {};
|
|
let c17687_0 = r0;
|
|
a0.forEach((a0) => {
|
|
L32: {
|
|
const type = a0.type;
|
|
if (!IS_SEARCH_FILTER_TOKEN.test(type)) {
|
|
if (SearchTokenTypes.ANSWER_BEFORE !== type && SearchTokenTypes.ANSWER_ON !== type && SearchTokenTypes.ANSWER_AFTER !== type) {
|
|
const r7 = (function getQueryKey(a0) {
|
|
const r8 = SearchTokens[a0];
|
|
let r10 = r8 != null ? r8.queryKey : null;
|
|
if (r10 == null) {
|
|
r10 = "content";
|
|
}
|
|
return r10;
|
|
})(type);
|
|
if (c17687_0[r7] == null) {
|
|
c17687_0[r7] = new Set();
|
|
}
|
|
const r33 = c17687_0[r7];
|
|
if (SearchTokenTypes.ANSWER_USERNAME_FROM !== type && SearchTokenTypes.ANSWER_USERNAME_MENTIONS !== type) {
|
|
if (SearchTokenTypes.ANSWER_LINK_FROM !== type && SearchTokenTypes.ANSWER_FILE_TYPE !== type && SearchTokenTypes.ANSWER_FILE_NAME !== type) {
|
|
if (SearchTokenTypes.ANSWER_IN !== type) {
|
|
if (SearchTokenTypes.ANSWER_HAS === type) {
|
|
r33.add(a0.getData("has"));
|
|
break L32;
|
|
}
|
|
if (SearchTokenTypes.ANSWER_PINNED === type) {
|
|
r33.add(a0.getData("pinned"));
|
|
break L32;
|
|
}
|
|
if (SearchTokenTypes.ANSWER_AUTHOR_TYPE === type) {
|
|
r33.add(a0.getData("author_type"));
|
|
break L32;
|
|
}
|
|
r33.add(a0.getFullMatch().trim());
|
|
break L32;
|
|
}
|
|
let r66 = a0.getData("channelIds");
|
|
if (r66 == null) {
|
|
r66 = [];
|
|
}
|
|
for (const item of r66) {
|
|
r33.add(item);
|
|
}
|
|
break L32;
|
|
}
|
|
r33.add(a0.getMatch(1));
|
|
break L32;
|
|
}
|
|
r33.add(a0.getData("userId"));
|
|
break L32;
|
|
}
|
|
const data = a0.getData("start");
|
|
const data2 = a0.getData("end");
|
|
if (data) {
|
|
c17687_0.min_id = SnowflakeUtils.fromTimestamp(data);
|
|
}
|
|
if (data2) {
|
|
c17687_0.max_id = SnowflakeUtils.fromTimestamp(data2);
|
|
}
|
|
return void 0;
|
|
}
|
|
}
|
|
});
|
|
for (const item of Object.entries(r0)) {
|
|
const [r37, r38] = item;
|
|
if (r38 instanceof Set) {
|
|
r0[r37] = Array.from(r38);
|
|
}
|
|
}
|
|
if (r0.content) {
|
|
delete r0["contents"];
|
|
r0.content = r0.content.join(" ").trim();
|
|
if (!r0.content) {
|
|
delete r0["content"];
|
|
}
|
|
}
|
|
return r0;
|
|
}
|
|
export function getQueryContentString(a0) {
|
|
let r12;
|
|
if (a0?.contents != null && a0.contents.length > 0) {
|
|
const r13 = a0 == null;
|
|
let r5 = void 0;
|
|
if (!r13) {
|
|
const contents = a0.contents;
|
|
r5 = contents == null ? void 0 : contents.map((content) => content.split("|").slice(1).join("|")).join(" ");
|
|
}
|
|
r12 = r5;
|
|
} else {
|
|
r12 = a0?.content;
|
|
}
|
|
return r12;
|
|
}
|
|
export function getNonTokenQuery(a0) {
|
|
return a0.map((item) => item.type === QueryTokenizer.NON_TOKEN_TYPE ? item.getFullMatch() : "").join(" ").trim();
|
|
}
|
|
export function getSelectionScope(a0, a1, a2) {
|
|
let previousToken, nextToken;
|
|
const currentToken = a0.find((item, index) => {
|
|
let r1;
|
|
L7: {
|
|
if (a1 >= item.start && a1 <= item.end) {
|
|
if (a2 >= item.start && a2 <= item.end) {
|
|
const r3 = a0[index + 1] != null;
|
|
r1 = true;
|
|
if (!r3) {
|
|
break L7;
|
|
}
|
|
nextToken = a0[index + 1];
|
|
r1 = true;
|
|
} else {
|
|
previousToken = item;
|
|
r1 = false;
|
|
}
|
|
} else {
|
|
previousToken = item;
|
|
r1 = false;
|
|
}
|
|
}
|
|
return r1;
|
|
});
|
|
return currentToken != null ? {
|
|
previousToken,
|
|
currentToken,
|
|
nextToken,
|
|
focusOffset: a1,
|
|
anchorOffset: a2
|
|
} : null;
|
|
}
|
|
export function getAutocompleteMode(a0, a1) {
|
|
const r7 = a0 == null ? {} : a0;
|
|
const { currentToken, nextToken: nextToken2, previousToken: previousToken2 } = r7;
|
|
if (a1.length === 0) {
|
|
return {
|
|
type: SearchPopoutModes.EMPTY,
|
|
filter: null,
|
|
token: null
|
|
};
|
|
}
|
|
if (currentToken == null) {
|
|
return {
|
|
type: SearchPopoutModes.FILTER_ALL,
|
|
filter: null,
|
|
token: null
|
|
};
|
|
}
|
|
L10: {
|
|
if (isSearchFilterTokenType(currentToken.type)) {
|
|
if (nextToken2 != null && nextToken2.type !== QueryTokenizer.NON_TOKEN_TYPE) {
|
|
if (nextToken2 == null) {
|
|
break L10;
|
|
}
|
|
if (IS_SEARCH_ANSWER_TOKEN.test(nextToken2.type)) {
|
|
break L10;
|
|
}
|
|
return {
|
|
type: SearchPopoutModes.FILTER,
|
|
filter: currentToken.type,
|
|
token: null
|
|
};
|
|
}
|
|
return {
|
|
type: SearchPopoutModes.FILTER,
|
|
filter: currentToken.type,
|
|
token: nextToken2
|
|
};
|
|
}
|
|
}
|
|
return currentToken.type === QueryTokenizer.NON_TOKEN_TYPE && (previousToken2 != null && isSearchFilterTokenType(previousToken2.type)) ? {
|
|
type: SearchPopoutModes.FILTER,
|
|
filter: previousToken2.type,
|
|
token: currentToken
|
|
} : {
|
|
type: SearchPopoutModes.FILTER_ALL,
|
|
filter: null,
|
|
token: currentToken.type === QueryTokenizer.NON_TOKEN_TYPE ? currentToken : void 0
|
|
};
|
|
}
|
|
export function quoteChannelName(a0) {
|
|
return a0.match(/([\\" ])/g) != null ? `"${a0.replaceAll.call(a0, /([\\"])/g, $mk83946())}"` : a0;
|
|
}
|
|
export function getFlattenedAutocompleteResults(a0, c17689_0) {
|
|
let c17689_1 = [];
|
|
Module12(a0).forEach((item) => {
|
|
let group;
|
|
if (item != null && item.results.length !== 0) {
|
|
group = item.group;
|
|
c17689_1 = c17689_1.concat(item.results.map((a0) => {
|
|
const text = a0.text;
|
|
const r10 = a0.channel != null ? text.match(/([\\" ])/g) != null ? `"${text.replaceAll(/([\\"])/g, $mk83946())}"` : text : text;
|
|
const type = c17689_0.type;
|
|
const FILTER_ALL = SearchPopoutModes.FILTER_ALL;
|
|
let resultText = r10;
|
|
if (type === FILTER_ALL) {
|
|
let group2 = a0.group;
|
|
if (group2 == null) {
|
|
group2 = group;
|
|
}
|
|
group = group2;
|
|
const r34 = SearchTokens[group];
|
|
resultText = r34?.key != null && r34?.key !== "" ? `${r34.key} ${r10}` : r10;
|
|
}
|
|
return {
|
|
result: a0,
|
|
group: item.group,
|
|
resultText
|
|
};
|
|
}));
|
|
}
|
|
});
|
|
return c17689_1.filter((item) => item.resultText !== "");
|
|
}
|
|
export function getQueryFromTokens(a0) {
|
|
return a0 == null ? "" : a0.map((item) => item.getFullMatch()).join("");
|
|
}
|
|
export function queryHasFilter(a0, c17690_0) {
|
|
return c6723_19.tokenize(a0).some((item) => item.type === c17690_0);
|
|
}
|
|
export function tokenizeQuery(a0) {
|
|
return c6723_19.tokenize(a0);
|
|
}
|
|
export function clearTokenCache() {
|
|
c6723_19.clearCache();
|
|
c6723_20.clearCache();
|
|
}
|
|
export function showDatePicker(a0) {
|
|
return a0 != null ? c6723_18[a0] : null;
|
|
}
|
|
export function filterHasAnswer(a0, a1) {
|
|
const r7 = IS_SEARCH_FILTER_TOKEN.test(a0.type);
|
|
return !(a1 == null && r7 || a1 != null && r7 && !IS_SEARCH_ANSWER_TOKEN.test(a1.type));
|
|
}
|
|
export function refreshSearchTokens() {
|
|
rebuildSearchTokenConfigs();
|
|
c6723_19.reset();
|
|
Module12(SearchTokens).forOwn((a0, a1) => c6723_19.addRule({
|
|
type: a1,
|
|
...a0
|
|
}));
|
|
c6723_20.reset();
|
|
Module12(buildCrossDMSearchTokensConfig()).forOwn((a0, a1) => c6723_20.addRule({
|
|
type: a1,
|
|
...a0
|
|
}));
|
|
SearchActionCreators.markSearchTokensRefreshed();
|
|
}
|
|
export function getChannelDisplayName(a0) {
|
|
let r0, r20;
|
|
const r12 = computeChannelName(a0, UserStore, RelationshipStore);
|
|
if (a0.isDM()) {
|
|
const userTag = UserUtils.getUserTag(UserStore.getUser(a0.getRecipientId()));
|
|
const r40 = userTag == null;
|
|
r0 = false;
|
|
r20 = userTag;
|
|
if (r40) {
|
|
return null;
|
|
}
|
|
} else {
|
|
const isGroupDM = a0.isGroupDM();
|
|
r0 = false;
|
|
r20 = r12;
|
|
if (!isGroupDM) {
|
|
const r2 = !a0.isThread();
|
|
const r28 = GuildChannelStore.getTextChannelNameDisambiguations(a0.getGuildId())[a0.id];
|
|
const name = r28?.name;
|
|
r0 = r2;
|
|
r20 = r12;
|
|
if (name != null) {
|
|
r20 = r28.name;
|
|
r0 = r2;
|
|
}
|
|
}
|
|
}
|
|
const r43 = r20.match(/([\\" ])/g);
|
|
const r45 = r20;
|
|
const r46 = r43 != null ? `"${r45.replaceAll(/([\\"])/g, $mk83946())}"` : r45;
|
|
return r0 ? `#${r46}` : r46;
|
|
}
|
|
export function getChannelPlaceholderName(a0) {
|
|
if (a0.isGroupDM()) {
|
|
return computeChannelName(a0, UserStore, RelationshipStore);
|
|
}
|
|
if (a0.isDM()) {
|
|
return UserUtils.getUserTag(UserStore.getUser(a0.getRecipientId()));
|
|
}
|
|
let r18 = GuildChannelStore.getTextChannelNameDisambiguations(a0.getGuildId())[a0.id]?.name;
|
|
if (r18 == null) {
|
|
r18 = computeChannelName(a0, UserStore, RelationshipStore);
|
|
}
|
|
return r18;
|
|
}
|
|
export function removeInvalidPrivateChannelSearchTokens(a0) {
|
|
let c17691_1;
|
|
const r4 = c6723_20.tokenize(a0);
|
|
const r6 = [];
|
|
let c17691_0 = r6;
|
|
r4.forEach((item) => {
|
|
if (!(item.type === SearchTokenTypes.FILTER_IN || item.type === SearchTokenTypes.ANSWER_IN)) {
|
|
c17691_0.push(item);
|
|
}
|
|
});
|
|
c17691_1 = "";
|
|
r6.forEach((item) => {
|
|
c17691_1 = c17691_1 + item.getFullMatch();
|
|
});
|
|
return c17691_1.trim();
|
|
}
|