Files
discord-decomp/modules/messages/MarkupPostProcessors.tsx
T
2026-11-01 12:12:55 +02:00

402 lines
12 KiB
TypeScript

// Metro module 7877 (f7878).
import { MessageEmbedTypes, MessageTypes } from "../../Constants";
import { isEmbedInline } from "../../utils/EmbedUtils";
import { isBuildOverrideLink } from "../build_overrides/BuildOverrideUtils";
import { isExperimentEmbedURL } from "../experiments/ExperimentEmbedUtils";
import { parseGameServerShareCode } from "../coded_links/findCodedLinks";
function $mk79369() {
return (a0) => {
let r0 = a0.type !== "emoji" && a0.type !== "customEmoji";
if (r0) {
const content = a0.content;
r0 = typeof content === "string" ? a0.content.trim() !== "" : typeof content !== "string";
}
return r0;
};
}
function $mk79370($env) {
return (a0) => {
const r1 = a0.type !== "emoji" && a0.type !== "customEmoji";
const r8 = $env;
if (!r1) {
r8[0] = r8[0] + 1;
}
if (r8[0] > 30) {
return false;
}
};
}
function $mk79371() {
return (a0) => {
a0.jumboable = true;
};
}
function $mk79372($env) {
return (a0) => {
let r18, r22, r28;
let env26047;
const r12 = $env.$parent;
const r14 = $env[0];
const r5 = env26047 = {
$parent: r12
};
env26047[0] = r14;
if (a0 instanceof Array) {
r18 = a0.some($mk79372(r5));
} else {
r18 = r14(a0);
if (r18 == null) {
if (a0.content instanceof Array) {
let env26048;
const content = a0.content;
const r25 = env26048 = {
$parent: r12
};
env26048[0] = r14;
if (content instanceof Array) {
r28 = content.some($mk79372(r25));
} else {
r28 = r14(content);
if (r28 == null) {
r28 = content.content instanceof Array ? (0, r12[7])(content.content, r14) : content.items instanceof Array && content.items.some($mk79373(r25));
}
}
r22 = r28;
} else {
r22 = a0.items instanceof Array && a0.items.some($mk79373(r5));
}
r18 = r22;
}
}
return r18;
};
}
function $mk79373($env) {
return (a0) => {
let r18, r22, r28;
let env26049;
const r12 = $env.$parent;
const r14 = $env[0];
const r5 = env26049 = {
$parent: r12
};
env26049[0] = r14;
if (a0 instanceof Array) {
r18 = a0.some($mk79372(r5));
} else {
r18 = r14(a0);
if (r18 == null) {
if (a0.content instanceof Array) {
let env26050;
const content = a0.content;
const r25 = env26050 = {
$parent: r12
};
env26050[0] = r14;
if (content instanceof Array) {
r28 = content.some($mk79372(r25));
} else {
r28 = r14(content);
if (r28 == null) {
r28 = content.content instanceof Array ? (0, r12[7])(content.content, r14) : content.items instanceof Array && content.items.some($mk79373(r25));
}
}
r22 = r28;
} else {
r22 = a0.items instanceof Array && a0.items.some($mk79373(r5));
}
r18 = r22;
}
}
return r18;
};
}
function $mk79377() {
return (a0) => a0.type !== "link";
}
function $mk79378($env) {
return (a0) => {
const type = a0.type;
const r0 = a0.target != null;
let r7 = null;
if (r0) {
const r5 = $env.$parent;
r7 = (0, r5[0])(r5[2][4]).parseQuestsEmbedCode(a0.target);
}
return !(type === "link" && r7 != null && !$env[0]);
};
}
function $mk79379($env) {
return (a0) => {
const r1 = $env;
if (r1[5].has(a0.type) && a0.content != null) {
const isArray = Array.isArray(a0.content);
const content = a0.content;
if (isArray) {
content.forEach($mk79379(r1));
} else if (typeof content === "string") {
a0.content = a0.content.replace(/\n/g, " ");
} else {
(0, r1[1])(r1[2][5]).captureMessage(`AST node type:${a0.type} with content typeof ${typeof a0.content}. Keys ${Object.keys(a0)}`);
}
}
};
}
let containsMatchingNode, c4975_4, c4975_5;
let $mk79374 = function() {
return (a0) => {
let r20, r27, r33;
const type = a0.type;
let r4 = null;
if (type === "spoiler") {
let env26051;
const r15 = (a0) => a0.type === "link" || a0.type === "attachmentLink" || null;
const r17 = env26051 = {
$parent: env4975
};
env26051[0] = r15;
if (a0 instanceof Array) {
r20 = a0.some($mk79372(r17));
} else {
r20 = a0.type === "link" || a0.type === "attachmentLink" || null;
if (r20 == null) {
if (a0.content instanceof Array) {
let env26052;
const content = a0.content;
const r30 = env26052 = {
$parent: env4975
};
env26052[0] = r15;
if (content instanceof Array) {
r33 = content.some($mk79372(r30));
} else {
r33 = r15(content);
if (r33 == null) {
r33 = content.content instanceof Array ? containsMatchingNode(content.content, r15) : content.items instanceof Array && content.items.some($mk79373(r30));
}
}
r27 = r33;
} else {
r27 = a0.items instanceof Array && a0.items.some($mk79373(r17));
}
r20 = r27;
}
}
r4 = r20;
}
return r4;
};
}, $mk79375 = function() {
return (a0) => a0.type !== "link" || !isBuildOverrideLink(a0.target);
}, $mk79376 = function() {
return (a0) => a0.type !== "link" || !isExperimentEmbedURL(a0.target);
};
let env4975 = {};
export function checkSpoilerEmbeds(a0, a1) {
let r21, r28, r32, r38, r57, r64, r72;
if (a1) {
let env16067;
const r51 = $mk79374();
const r52 = env16067 = {
$parent: env4975
};
env16067[0] = r51;
if (a0 instanceof Array) {
r57 = a0.some($mk79372(r52));
} else {
r57 = r51(a0);
if (r57 == null) {
if (a0.content instanceof Array) {
let env16068;
const content3 = a0.content;
const r69 = env16068 = {
$parent: env4975
};
env16068[0] = r51;
if (content3 instanceof Array) {
r72 = content3.some($mk79372(r69));
} else {
r72 = r51(content3);
if (r72 == null) {
r72 = content3.content instanceof Array ? containsMatchingNode(content3.content, r51) : content3.items instanceof Array && content3.items.some($mk79373(r69));
}
}
r64 = r72;
} else {
r64 = a0.items instanceof Array && a0.items.some($mk79373(r52));
}
r57 = r64;
}
}
r21 = r57;
} else {
r21 = a0[0].type === "paragraph" && a0[0].content instanceof Array;
if (r21) {
let env16065;
const content = a0[0].content;
const r17 = $mk79374();
const r26 = env16065 = {
$parent: env4975
};
env16065[0] = r17;
if (content instanceof Array) {
r28 = content.some($mk79372(r26));
} else {
r28 = r17(content);
if (r28 == null) {
if (content.content instanceof Array) {
let env16066;
const content2 = content.content;
const r35 = env16066 = {
$parent: env4975
};
env16066[0] = r17;
if (content2 instanceof Array) {
r38 = content2.some($mk79372(r35));
} else {
r38 = r17(content2);
if (r38 == null) {
r38 = content2.content instanceof Array ? containsMatchingNode(content2.content, r17) : content2.items instanceof Array && content2.items.some($mk79373(r35));
}
}
r32 = r38;
} else {
r32 = content.items instanceof Array && content.items.some($mk79373(r26));
}
r28 = r32;
}
}
r21 = r28;
}
}
return r21;
}
containsMatchingNode = function containsMatchingNode(a0, a1) {
let env16069;
const r2 = env16069 = {
$parent: env4975
};
env16069[0] = a1;
if (a0 instanceof Array) {
return a0.some($mk79372(r2));
}
let r11 = a1(a0);
if (r11 == null) {
r11 = a0.content instanceof Array ? containsMatchingNode(a0.content, a1) : a0.items instanceof Array && a0.items.some($mk79373(r2));
}
return r11;
};
c4975_4 = new Set([MessageEmbedTypes.IMAGE, MessageEmbedTypes.GIFV]);
c4975_5 = new Set(["strong", "em", "u", "text", "inlineCode", "s", "spoiler"]);
export function checkForSimpleEmbedMessage(a0, a1) {
if (a0.length === 1 && a1.length === 1) {
const r10 = a0[0];
const r6 = a1[0];
return r10.type !== "link" ? r10.type === "attachmentLink" ? c4975_4.has(r6.type) ? isEmbedInline(r6) ? [] : a0 : a0 : a0 : c4975_4.has(r6.type) ? isEmbedInline(r6) ? [] : a0 : a0;
}
return a0;
}
export function removeBuildOverrideLinks(a0) {
return a0.filter($mk79375());
}
export function removeExperimentLinks(a0) {
return a0.filter($mk79376());
}
export function removeQuestsEmbedLinks(a0) {
let env16070;
const r1 = env16070 = {
$parent: env4975
};
env16070[0] = a0.some($mk79377());
return a0.filter($mk79378(r1));
}
export function removeGameServerShareLinks(a0) {
return a0.filter((item) => {
const type = item.type;
const r1 = item.target != null && parseGameServerShareCode(item.target) != null;
return !(type === "link" && r1);
});
}
export function convertNewlinesInContent(a0) {
a0.forEach.call(a0, $mk79379(env4975));
return a0;
}
export function runMessageMarkupPostProcessors(a0) {
const { ast, inline, hasBailedAst, message } = a0;
let contentMessage = a0.contentMessage;
const { messageContent, hideSimpleEmbedContent, formatInline, toAST } = a0;
let r20 = Array.isArray(ast) ? ast : [ast];
if (hasBailedAst) {
r20 = [{
type: "text",
content: messageContent,
originalMatch: {
index: 0,
0: messageContent
}
}];
}
const r25 = env4975;
let r26 = r20;
if (hideSimpleEmbedContent) {
const embeds = (contentMessage == null ? message : contentMessage).embeds;
const length = r20.length;
let r30 = r20;
if (length === 1) {
const length2 = embeds.length;
r30 = r20;
if (length2 === 1) {
const r32 = r20[0];
const r16 = embeds[0];
r30 = r32.type !== "link" ? r32.type === "attachmentLink" ? c4975_4.has(r16.type) ? isEmbedInline(r16) ? [] : r20 : r20 : r20 : c4975_4.has(r16.type) ? isEmbedInline(r16) ? [] : r20 : r20;
}
}
r26 = r30;
}
if (!(formatInline || message.type === MessageTypes.MEDIA_MENTION_MESSAGE)) {
if (inline) {
if (!r26.some($mk79369())) {
let env16072;
const r78 = env16072 = {};
env16072[0] = 0;
r26.forEach($mk79370(r78));
if (!(env16072[0] > 30)) {
r26.forEach($mk79371());
}
}
} else if (r26[0].type === "paragraph" && r26[0].content instanceof Array) {
let env16071;
const r58 = r26[0];
const content = r26[0].content;
const r61 = env16071 = {};
env16071[0] = void 0;
if (!content.some($mk79369())) {
env16071[0] = 0;
content.forEach($mk79370(r61));
if (!(env16071[0] > 30)) {
content.forEach($mk79371());
}
}
r58.content = content;
}
}
const r88 = toAST ? r26.filter($mk79375()).filter($mk79376()) : r26;
let env16073;
const r94 = env16073 = {
$parent: env4975
};
env16073[0] = r88.some($mk79377());
const ast2 = r88.filter($mk79378(r94));
if (contentMessage == null) {
contentMessage = message;
}
const hasSpoilerEmbeds = contentMessage.embeds.length > 0 ? checkSpoilerEmbeds(ast2, inline) : false;
if (formatInline) {
ast2.forEach($mk79379(r25));
}
return {
ast: ast2,
hasSpoilerEmbeds
};
}