476 lines
15 KiB
TypeScript
476 lines
15 KiB
TypeScript
// 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 };
|