// Metro module 5922 (f5923). import MessageRecord from "../../records/MessageRecord"; import AuthenticationStore from "../../stores/AuthenticationStore"; import ChannelStore from "../../stores/ChannelStore"; import MessageStore from "../../stores/MessageStore"; import ReadStateStore from "../../stores/ReadStateStore"; import RelationshipStore from "../../stores/RelationshipStore"; import SelectedGuildStore from "../../stores/SelectedGuildStore"; import UserGuildSettingsStore from "../../stores/UserGuildSettingsStore"; import UserStore from "../../stores/UserStore"; import { ChannelTypes, ChannelTypesSets, MessageTypesSets, RecentMentionsFilters, UserNotificationSettings } from "../../Constants"; import { Storage } from "../../_bundle/Module595"; import { createMessageRecord, updateMessageRecord } from "../messages/MessageRecordUtils"; import { shouldShowAgeGateForChannelId } from "../age_gate/AgeGateUtils"; import isMessageMentioned, { isRawMessageMentioned } from "../messages/isMessageMentioned"; import Module12 from "../../_bundle/Module12"; import { now } from "../../_bundle/sleep"; import isSystemMessage from "../messages/isSystemMessage"; import shouldRemoveSelfMention from "../messages/shouldRemoveSelfMention"; import Module589 from "../../_bundle/Module589"; import Dispatcher from "../../Dispatcher"; function $mk77376($env) { return (a0) => a0.id === $env[0]; } function $mk77377($env) { return (a0) => a0.id !== $env[0]; } let c3708_17, c3708_18, c3708_19, c3708_20, c3708_21, hasMoreAfter, c3708_23, c3708_24, c3708_25, c3708_26, hasMentionNotificationEnabled, parseMessage, deleteMessage, handleSetRecentMentionsFilters, $mk77374 = function() { return (a0) => { if (c3708_19[a0.getChannelId()] == null) { c3708_19[a0.getChannelId()] = 0; } const channelId = a0.getChannelId(); c3708_19[channelId] = c3708_19[channelId] + 1; }; }, $mk77375 = function() { return (a0) => { if (c3708_19[a0.getChannelId()] != null) { c3708_19[a0.getChannelId()] = Math.max(0, c3708_19[a0.getChannelId()] - 1); } }; }; const findOrCreateMessageRecord = function findOrCreateMessageRecord(a0) { if (a0 instanceof MessageRecord) { return a0; } let r8 = MessageStore.getMessage(a0.channel_id, a0.id); if (r8 == null) { r8 = createMessageRecord(a0); } return r8; }; hasMentionNotificationEnabled = function hasMentionNotificationEnabled(a0) { const basicChannel = ChannelStore.getBasicChannel(a0.channel_id); if (basicChannel != null && ChannelTypesSets.GUILD_TEXTUAL.has(basicChannel.type)) { if (UserGuildSettingsStore.isGuildOrCategoryOrChannelMuted(basicChannel.guild_id, basicChannel.id)) { return false; } if (shouldShowAgeGateForChannelId(basicChannel.id)) { return false; } const r27 = UserGuildSettingsStore.resolvedMessageNotifications(basicChannel); if (UserNotificationSettings.ALL_MESSAGES === r27) { return true; } if (UserNotificationSettings.ONLY_MENTIONS === r27) { const isSuppressEveryoneEnabled = UserGuildSettingsStore.isSuppressEveryoneEnabled(basicChannel.guild_id); const isSuppressRolesEnabled = UserGuildSettingsStore.isSuppressRolesEnabled(basicChannel.guild_id); const currentUser = UserStore.getCurrentUser(); return currentUser != null && isMessageMentioned({ message: a0, userId: currentUser.id, suppressEveryone: isSuppressEveryoneEnabled, suppressRoles: isSuppressRolesEnabled }); } UserNotificationSettings.NO_MESSAGES; return false; } return false; }; parseMessage = function parseMessage(a0, r7 = null) { if (isSystemMessage(a0) && !MessageTypesSets.SELF_MENTIONABLE_SYSTEM.has(a0.type)) { return null; } if (r7 == null) { r7 = a0.channel_id; } const channel2 = ChannelStore.getChannel(r7); if (channel2 != null && channel2.type !== ChannelTypes.DM) { if (c3708_23.guildFilter === RecentMentionsFilters.THIS_SERVER && channel2.getGuildId() !== SelectedGuildStore.getGuildId()) { return null; } const id2 = AuthenticationStore.getId(); if (!RelationshipStore.isBlockedOrIgnoredForMessage(a0) && !shouldRemoveSelfMention(a0, id2)) { const r2 = a0 instanceof MessageRecord; let message = a0; if (!r2) { let r48 = MessageStore.getMessage(a0.channel_id, a0.id); if (r48 == null) { r48 = createMessageRecord(a0); } message = r48; } const isMessageMentioned2 = isMessageMentioned({ message, userId: id2, suppressEveryone: !c3708_23.everyoneFilter, suppressRoles: !c3708_23.roleFilter }); let r62 = null; if (isMessageMentioned2) { const r63 = c3708_26 && ReadStateStore.ackMessageId(channel2.id) !== message.id && isMessageMentioned({ message, userId: id2, suppressEveryone: UserGuildSettingsStore.isSuppressEveryoneEnabled(channel2.getGuildId()), suppressRoles: UserGuildSettingsStore.isSuppressRolesEnabled(channel2.getGuildId()) }); r62 = message; if (r63) { c3708_26 = false; r62 = message; } } return r62; } return null; } return null; }; deleteMessage = function deleteMessage(a0) { let env15270; const r2 = env15270 = {}; env15270[0] = a0; if (c3708_20[a0] == null) { return false; } delete c3708_20[a0]; const r6 = { deletedMessages: Module12.filter(c3708_18, $mk77376(r2)) }; const { addedMessages, deletedMessages } = r6; if (addedMessages != null) { addedMessages.forEach($mk77374()); } if (deletedMessages != null) { deletedMessages.forEach($mk77375()); } c3708_18 = Module12.filter(c3708_18, $mk77377(r2)); }; const handleMessageDelete = function handleMessageDelete({ id: id2 }) { let env15271; const r12 = env15271 = {}; env15271[0] = id2; const r1 = c3708_20[id2] == null; let r0 = false; if (!r1) { delete c3708_20[id2]; const r7 = { deletedMessages: Module12.filter(c3708_18, $mk77376(r12)) }; const { addedMessages, deletedMessages } = r7; if (addedMessages != null) { addedMessages.forEach($mk77374()); } if (deletedMessages != null) { deletedMessages.forEach($mk77375()); } c3708_18 = Module12.filter(c3708_18, $mk77377(r12)); r0 = void 0; } return r0; }; handleSetRecentMentionsFilters = function handleSetRecentMentionsFilters(a0) { const r6 = { ...c3708_23 }; c3708_23 = Module12.defaults(Module12.pick(a0, ["guildFilter", "roleFilter", "everyoneFilter"]), c3708_23); Storage.set(c3708_17, c3708_23); const THIS_SERVER = RecentMentionsFilters.THIS_SERVER; const r1 = r6.guildFilter !== c3708_23.guildFilter && c3708_23.guildFilter === THIS_SERVER || r6.everyoneFilter !== c3708_23.everyoneFilter && c3708_23.everyoneFilter === false || r6.roleFilter !== c3708_23.roleFilter && c3708_23.roleFilter === false; c3708_20 = {}; const r52 = []; let c15272_0 = r52; if (r1) { c3708_18.forEach((item) => { const r6 = parseMessage(item); if (r6 != null) { c15272_0.push(r6); c3708_20[r6.id] = true; } }); } c3708_18 = r52; c3708_19 = {}; r52.forEach((item) => { if (c3708_19[item.getChannelId()] == null) { c3708_19[item.getChannelId()] = 0; } const channelId = item.getChannelId(); c3708_19[channelId] = c3708_19[channelId] + 1; }); if (c3708_18.length === 0) { c3708_24 = false; } }; const handleRelationshipUpdate = function handleRelationshipUpdate() { const r2 = { deletedMessages: Module12.filter(c3708_18, (a0) => RelationshipStore.isBlockedOrIgnoredForMessage(a0)) }; const { addedMessages, deletedMessages } = r2; if (addedMessages != null) { addedMessages.forEach($mk77374()); } if (deletedMessages != null) { deletedMessages.forEach($mk77375()); } c3708_18 = c3708_18.filter((item) => !RelationshipStore.isBlockedOrIgnoredForMessage(item)); }; const handleDeleteChannel = function handleDeleteChannel({ channel }) { const deletedMessages2 = []; let c15273_1 = deletedMessages2; c3708_18 = Module12.filter(c3708_18, (a0) => { let r0 = a0.channel_id !== channel.id; if (!r0) { delete c3708_20[a0.id]; c15273_1.push(a0); r0 = false; } return r0; }); const r15 = { deletedMessages: deletedMessages2 }; const { addedMessages, deletedMessages } = r15; if (addedMessages != null) { addedMessages.forEach($mk77374()); } if (deletedMessages != null) { deletedMessages.forEach($mk77375()); } }; c3708_17 = "recentMentionFilterSettings"; c3708_18 = []; c3708_19 = {}; c3708_20 = {}; c3708_21 = false; hasMoreAfter = true; c3708_23 = Storage.get("recentMentionFilterSettings", { guildFilter: RecentMentionsFilters.ALL_SERVERS, everyoneFilter: true, roleFilter: true }); c3708_24 = false; c3708_25 = 0; c3708_26 = false; class RecentMentionsStore extends Module589.Store { static displayName = "RecentMentionsStore"; initialize() { this.waitFor(AuthenticationStore, ChannelStore, MessageStore, ReadStateStore, RelationshipStore, SelectedGuildStore, UserGuildSettingsStore, UserStore); } get hasLoadedEver() { return c3708_24; } get lastLoaded() { return c3708_25; } getMentions() { return c3708_24 ? c3708_18 : c3708_18.length > 0 ? c3708_18 : null; } getSettingsFilteredMentions() { return c3708_24 ? c3708_18.filter(hasMentionNotificationEnabled) : c3708_18.length > 0 ? c3708_18.filter(hasMentionNotificationEnabled) : null; } hasMention(a0) { return c3708_20[a0]; } get loading() { return c3708_21; } get hasMore() { return hasMoreAfter; } get guildFilter() { return c3708_23.guildFilter; } get everyoneFilter() { return c3708_23.everyoneFilter; } get roleFilter() { return c3708_23.roleFilter; } get mentionsAreStale() { return c3708_26; } get mentionCountByChannel() { return c3708_19; } getMentionCountForChannel(a0) { let r5 = c3708_19[a0]; if (r5 == null) { r5 = 0; } return r5; } } const recentMentionsStore = new RecentMentionsStore(Dispatcher, { LOAD_RECENT_MENTIONS: function handleLoadMentions({ guildId }) { c3708_21 = true; if (guildId == null && c3708_23.guildFilter === RecentMentionsFilters.THIS_SERVER) { handleSetRecentMentionsFilters({ guildFilter: RecentMentionsFilters.ALL_SERVERS }); } }, LOAD_RECENT_MENTIONS_SUCCESS: function handleLoadMentionsSuccess({ hasMoreAfter: hasMoreAfter2, messages, isAfter }) { const addedMessages2 = Module12.map(messages, findOrCreateMessageRecord); const r15 = { addedMessages: addedMessages2 }; const { addedMessages, deletedMessages } = r15; if (addedMessages != null) { addedMessages.forEach($mk77374()); } if (deletedMessages != null) { deletedMessages.forEach($mk77375()); } if (isAfter) { c3708_18 = c3708_18.concat(addedMessages2); } else { c3708_18 = addedMessages2; c3708_20 = {}; } Module12.forEach(addedMessages2, (a0) => { c3708_20[a0.id] = true; }); c3708_21 = false; hasMoreAfter = hasMoreAfter2; c3708_25 = now(); c3708_24 = true; }, LOAD_RECENT_MENTIONS_FAILURE: function handleLoadMentionsFailure() { c3708_21 = false; }, SET_RECENT_MENTIONS_FILTER: handleSetRecentMentionsFilters, CLEAR_MENTIONS: function handleClearMentions() { c3708_18 = []; c3708_20 = {}; c3708_24 = false; c3708_26 = false; c3708_19 = {}; }, TRUNCATE_MENTIONS: function handleTruncateMentions({ size }) { const r9 = { deletedMessages: c3708_18.slice(size) }; const { addedMessages, deletedMessages } = r9; if (addedMessages != null) { addedMessages.forEach($mk77374()); } if (deletedMessages != null) { deletedMessages.forEach($mk77375()); } const length = c3708_18.length; let r19 = size; if (r19 < length) { do { delete c3708_20[c3708_18[r19].id]; r19 = r19 + 1; } while (r19 < c3708_18.length); } const length2 = c3708_18.length; const r31 = c3708_18.slice(0, size); c3708_18 = r31; if (length2 > r31.length) { hasMoreAfter = true; } }, CHANNEL_SELECT: function handleChannelSelect() { if (c3708_23.guildFilter !== RecentMentionsFilters.THIS_SERVER) { return false; } c3708_24 = false; }, CONNECTION_OPEN: function handleConnectionOpen() { c3708_18 = []; c3708_20 = {}; c3708_24 = false; c3708_26 = false; c3708_19 = {}; }, GUILD_DELETE: function handleGuildDelete({ guild }) { const deletedMessages2 = []; let c15274_1 = deletedMessages2; c3708_18 = Module12.filter(c3708_18, (a0) => { const channel2 = ChannelStore.getChannel(a0.channel_id); let r9 = channel2 != null && channel2.getGuildId() !== guild.id; if (!r9) { delete c3708_20[a0.id]; c15274_1.push(a0); r9 = false; } return r9; }); const r15 = { deletedMessages: deletedMessages2 }; const { addedMessages, deletedMessages } = r15; if (addedMessages != null) { addedMessages.forEach($mk77374()); } if (deletedMessages != null) { deletedMessages.forEach($mk77375()); } }, MESSAGE_CREATE: function handleIncomingMessage({ channelId, message }) { const currentUser = UserStore.getCurrentUser(); if (currentUser != null && isRawMessageMentioned({ rawMessage: message, userId: currentUser.id, suppressRoles: false, suppressEveryone: false })) { const r19 = parseMessage(message, channelId); if (r19 == null) { return false; } const r22 = c3708_18.slice(); c3708_18 = r22; r22.unshift(r19); c3708_20[r19.id] = true; const r28 = { addedMessages: [r19] }; const { addedMessages, deletedMessages } = r28; if (addedMessages != null) { addedMessages.forEach($mk77374()); } if (deletedMessages != null) { deletedMessages.forEach($mk77375()); } return void 0; } return false; }, MESSAGE_UPDATE: function handleMessageUpdate(a0) { const id = a0.message.id; if (id != null && c3708_20[id] != null) { const r16 = Module12.findIndex(c3708_18, (a0) => a0.id === id); const r19 = c3708_18.slice(); c3708_18 = r19; const r20 = r19[r16]; if (r20 != null) { c3708_18[r16] = updateMessageRecord(r20, a0.message); } return void 0; } return false; }, MESSAGE_DELETE: handleMessageDelete, RECENT_MENTION_DELETE: handleMessageDelete, MESSAGE_DELETE_BULK: function handleMessageDeleteBulk(a0) { Module12.forEach(a0.ids, deleteMessage); }, CHANNEL_DELETE: handleDeleteChannel, THREAD_DELETE: handleDeleteChannel, RELATIONSHIP_ADD: handleRelationshipUpdate, RELATIONSHIP_REMOVE: handleRelationshipUpdate, RELATIONSHIP_UPDATE: handleRelationshipUpdate, SET_RECENT_MENTIONS_STALE: function handleSetRecentMentionsStale() { c3708_26 = true; } }); export default recentMentionsStore; export { hasMentionNotificationEnabled }; export { parseMessage };