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

166 lines
5.3 KiB
TypeScript

// Metro module 7719 (f7720).
import ChannelStore from "../../stores/ChannelStore";
import MessageStore from "../../stores/MessageStore";
import { AbortCodes, MessageEmbedTypes, MessageTypes } from "../../Constants";
import { getFailedMessageId, isMessageDataEdit } from "../../lib/MessageQueue";
import { getAutomodErrorMessage } from "./AutomodErrorUtils";
import { createMessageRecord } from "../messages/MessageRecordUtils";
import { isAutomodMessageRecord, isAutomodNotification } from "./AutomodMessageUtils";
import SnowflakeUtils from "../../utils/SnowflakeUtils";
import Module589 from "../../_bundle/Module589";
import Dispatcher from "../../Dispatcher";
let automodFailedMessages, c4852_9, mentionRaidDetectionByGuild, lastIncidentAlertMessage;
const handleMessageSendFailedAutomod = function handleMessageSendFailedAutomod({ messageData, errorResponseBody }) {
const failedMessageId = getFailedMessageId(messageData);
automodFailedMessages[failedMessageId] = {
id: failedMessageId,
isBlockedEdit: isMessageDataEdit(messageData),
messageData,
errorMessage: getAutomodErrorMessage(messageData, errorResponseBody)
};
c4852_9 = c4852_9 + 1;
return true;
};
const handleLoadMessages = function handleLoadMessages({ channelId, messages }) {
const channel = ChannelStore.getChannel(channelId);
const r10 = channel == null ? void 0 : channel.getGuildId();
if (r10 == null) {
return false;
}
const r15 = messages.reduce((acc, message) => {
if (message.type === MessageTypes.AUTO_MODERATION_ACTION) {
const embeds = message.embeds;
return (embeds == null ? void 0 : embeds.some((embed) => embed.type === MessageEmbedTypes.AUTO_MODERATION_NOTIFICATION)) ? acc != null ? SnowflakeUtils.compare(acc, message.id) === -1 ? message.id : void 0 : message.id : acc;
}
return acc;
}, lastIncidentAlertMessage[r10]);
let r16 = r15 != null && lastIncidentAlertMessage[r10] !== r15;
if (r16) {
lastIncidentAlertMessage[r10] = r15;
r16 = true;
}
return r16;
};
automodFailedMessages = {};
c4852_9 = 0;
mentionRaidDetectionByGuild = {};
lastIncidentAlertMessage = {};
class GuildAutomodMessageStore extends Module589.PersistedStore {
static displayName = "GuildAutomodMessageStore";
static persistKey = "GuildAutomodMessages";
initialize(a0) {
this.waitFor(ChannelStore, MessageStore);
if (a0 != null) {
automodFailedMessages = a0.automodFailedMessages;
mentionRaidDetectionByGuild = a0.mentionRaidDetectionByGuild;
}
}
getState() {
return {
automodFailedMessages,
mentionRaidDetectionByGuild,
lastIncidentAlertMessage
};
}
getMessage(a0) {
const r1 = a0 == null;
let r2 = null;
if (!r1) {
let r6 = automodFailedMessages[a0];
if (r6 == null) {
r6 = null;
}
r2 = r6;
}
return r2;
}
getMessagesVersion() {
return c4852_9;
}
getMentionRaidDetected(a0) {
let r4 = mentionRaidDetectionByGuild[a0];
if (r4 == null) {
r4 = null;
}
return r4;
}
getLastIncidentAlertMessage(a0) {
let r4 = lastIncidentAlertMessage[a0];
if (r4 == null) {
r4 = null;
}
return r4;
}
}
const guildAutomodMessageStore = new GuildAutomodMessageStore(Dispatcher, {
CONNECTION_OPEN: function handleConnectionOpen() {
let r1 = Object.keys(automodFailedMessages).length !== 0;
if (r1) {
automodFailedMessages = {};
c4852_9 = c4852_9 + 1;
r1 = true;
}
return r1;
},
LOAD_MESSAGES_SUCCESS: handleLoadMessages,
LOCAL_MESSAGES_LOADED: handleLoadMessages,
MESSAGE_CREATE: function handleIncidentAlertMessageCreate({ guildId, message }) {
if (guildId == null) {
return false;
}
if (message.type !== MessageTypes.AUTO_MODERATION_ACTION) {
return false;
}
const messageRecord = createMessageRecord(message);
let r21 = !!isAutomodMessageRecord(messageRecord);
if (r21) {
let r27 = !!isAutomodNotification(messageRecord);
if (r27) {
lastIncidentAlertMessage[guildId] = messageRecord.id;
r27 = true;
}
r21 = r27;
}
return r21;
},
MESSAGE_SEND_FAILED_AUTOMOD: handleMessageSendFailedAutomod,
MESSAGE_EDIT_FAILED_AUTOMOD: handleMessageSendFailedAutomod,
REMOVE_AUTOMOD_MESSAGE_NOTICE: function handleMessageNoticeRemove({ messageId }) {
if (automodFailedMessages[messageId] != null) {
delete automodFailedMessages[messageId];
}
c4852_9 = c4852_9 + 1;
return true;
},
MESSAGE_END_EDIT: function handleMessageEndEdit({ response }) {
if (response?.body == null) {
return false;
}
if (response.body.code === AbortCodes.AUTOMOD_MESSAGE_BLOCKED) {
return false;
}
const id = response.body.id;
if (id == null) {
return false;
}
if (automodFailedMessages[id] != null) {
delete automodFailedMessages[id];
}
c4852_9 = c4852_9 + 1;
},
AUTO_MODERATION_MENTION_RAID_DETECTION: function handleMentionRaidDetection(a0) {
const guildId = a0.guildId;
mentionRaidDetectionByGuild[guildId] = {
guildId,
decisionId: a0.decisionId,
suspiciousMentionActivityUntil: a0.suspiciousMentionActivityUntil
};
return true;
},
AUTO_MODERATION_MENTION_RAID_NOTICE_DISMISS: function handleMentionRaidNoticeDismiss(a0) {
delete mentionRaidDetectionByGuild[a0.guildId];
return true;
}
});
export default guildAutomodMessageStore;