166 lines
5.3 KiB
TypeScript
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;
|