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

516 lines
17 KiB
TypeScript

// Metro module 5779 (f5780).
import AuthenticationStore from "../../stores/AuthenticationStore";
import GuildMemberStore from "../../stores/GuildMemberStore";
import { GuildScheduledEventStatus, GuildScheduledEventUserResponses, GuildScheduledEventStatusDone } from "./GuildScheduledEventsConstants";
import { SecondaryIndexMap } from "../../_bundle/Module3813";
import Module12 from "../../_bundle/Module12";
import SnowflakeUtils from "../../utils/SnowflakeUtils";
import Module589 from "../../_bundle/Module589";
import Dispatcher from "../../Dispatcher";
function $mk76980($env) {
return ({ id }) => {
const r1 = $env[0];
const r8 = $env.$parent;
r8[8].delete(id);
delete r8[12][id];
if (r1) {
delete r8[13][id];
}
r8[9] = r8[9] + 1;
};
}
let saveEvent, addGuildEventUser, removeGuildEventUser, c3595_7, c3595_8, c3595_10, c3595_11, c3595_17;
let env3595 = {};
export function scheduledEventSort(a0) {
const id = a0.id;
return `${a0 != null && a0?.status === GuildScheduledEventStatus.ACTIVE ? "\x00" : "\x01"}-${new Date(a0.scheduled_start_time).getTime()}-${id}`;
}
saveEvent = function saveEvent(a0) {
c3595_8.set(a0.id, a0);
env3595[9] = env3595[9] + 1;
};
addGuildEventUser = function addGuildEventUser(a0, r2 = true, r3 = true) {
let r0;
const guild_scheduled_event_id = a0.guild_scheduled_event_id;
if (env3595[12][guild_scheduled_event_id] == null) {
env3595[12][guild_scheduled_event_id] = {};
}
let guild_scheduled_event_exception_id = a0.guild_scheduled_event_exception_id;
if (guild_scheduled_event_exception_id == null) {
guild_scheduled_event_exception_id = c3595_11;
}
if (env3595[12][guild_scheduled_event_id][guild_scheduled_event_exception_id] == null) {
env3595[12][guild_scheduled_event_id][guild_scheduled_event_exception_id] = {};
}
env3595[12][guild_scheduled_event_id][guild_scheduled_event_exception_id][a0.user_id] = a0;
if (r2) {
let guild_scheduled_event_exception_id2 = a0.guild_scheduled_event_exception_id;
if (guild_scheduled_event_exception_id2 == null) {
guild_scheduled_event_exception_id2 = c3595_11;
}
const r27 = env3595[13][a0.guild_scheduled_event_id];
let r29 = r27 == null ? void 0 : r27[guild_scheduled_event_exception_id2];
if (r29 == null) {
r29 = 0;
}
L22: {
if (!(a0.guild_scheduled_event_exception_id != null && a0.response === GuildScheduledEventUserResponses.UNINTERESTED)) {
const r35 = a0.guild_scheduled_event_exception_id == null;
r0 = -1;
if (!r35) {
break L22;
}
r0 = a0.response === GuildScheduledEventUserResponses.INTERESTED ? 1 : -1;
} else {
r0 = 1;
}
}
const guild_scheduled_event_id2 = a0.guild_scheduled_event_id;
let guild_scheduled_event_exception_id3 = a0.guild_scheduled_event_exception_id;
const r41 = r29 + r0;
if (guild_scheduled_event_exception_id3 == null) {
guild_scheduled_event_exception_id3 = c3595_11;
}
if (env3595[13][guild_scheduled_event_id2] == null) {
env3595[13][guild_scheduled_event_id2] = {};
}
env3595[13][guild_scheduled_event_id2][guild_scheduled_event_exception_id3] = r41;
}
if (r3) {
env3595[9] = env3595[9] + 1;
}
};
removeGuildEventUser = function removeGuildEventUser(a0, r3 = true) {
let r0;
let guild_scheduled_event_exception_id = a0.guild_scheduled_event_exception_id;
if (guild_scheduled_event_exception_id == null) {
guild_scheduled_event_exception_id = c3595_11;
}
const r13 = env3595[12][a0.guild_scheduled_event_id];
const r2 = r13 == null;
let r14 = void 0;
if (!r2) {
const r12 = r13[guild_scheduled_event_exception_id];
r14 = r12 == null ? void 0 : r12[a0.user_id];
}
const r6 = r14 != null;
const user_id = a0.user_id;
const id = AuthenticationStore.getId();
if (!(r6 ? !r6 : user_id === id)) {
const r24 = env3595[12][a0.guild_scheduled_event_id];
if (r24 != null) {
const r25 = r24[guild_scheduled_event_exception_id];
if (r25 != null) {
delete r25[a0.user_id];
}
}
let guild_scheduled_event_exception_id2 = a0.guild_scheduled_event_exception_id;
if (guild_scheduled_event_exception_id2 == null) {
guild_scheduled_event_exception_id2 = c3595_11;
}
const r31 = env3595[13][a0.guild_scheduled_event_id];
let r33 = r31 == null ? void 0 : r31[guild_scheduled_event_exception_id2];
if (r33 == null) {
r33 = 0;
}
L24: {
if (!(a0.guild_scheduled_event_exception_id != null && a0.response === GuildScheduledEventUserResponses.UNINTERESTED)) {
const r39 = a0.guild_scheduled_event_exception_id == null;
r0 = 1;
if (!r39) {
break L24;
}
r0 = a0.response === GuildScheduledEventUserResponses.INTERESTED ? -1 : 1;
} else {
r0 = -1;
}
}
const guild_scheduled_event_id = a0.guild_scheduled_event_id;
let guild_scheduled_event_exception_id3 = a0.guild_scheduled_event_exception_id;
const r45 = r33 + r0;
if (guild_scheduled_event_exception_id3 == null) {
guild_scheduled_event_exception_id3 = c3595_11;
}
if (env3595[13][guild_scheduled_event_id] == null) {
env3595[13][guild_scheduled_event_id] = {};
}
env3595[13][guild_scheduled_event_id][guild_scheduled_event_exception_id3] = r45;
if (r3) {
env3595[9] = env3595[9] + 1;
}
}
};
const handleGuildScheduledEventUpdateOrCreate = function handleGuildScheduledEventUpdateOrCreate({ guildScheduledEvent }) {
c3595_8.set(guildScheduledEvent.id, guildScheduledEvent);
env3595[9] = env3595[9] + 1;
return true;
};
const handleGuildScheduledEventExceptionCreateOrUpdate = function handleGuildScheduledEventExceptionCreateOrUpdate({ eventException }) {
const r14 = c3595_8.get(eventException.event_id);
if (r14 == null) {
return false;
}
const r17 = r14.guild_scheduled_event_exceptions.findIndex((guild_scheduled_event_exception) => guild_scheduled_event_exception.event_exception_id === eventException.event_exception_id);
const guild_scheduled_event_exceptions = [...r14.guild_scheduled_event_exceptions];
if (r17 < 0) {
guild_scheduled_event_exceptions.push(eventException);
} else {
guild_scheduled_event_exceptions[r17] = eventException;
}
const r21 = {
...r14,
guild_scheduled_event_exceptions
};
c3595_8.set(r21.id, r21);
env3595[9] = env3595[9] + 1;
return true;
};
c3595_7 = {
EVENT: "event",
EVENT_ACTIVE: "active",
EVENT_UPCOMING: "event-upcoming",
GUILD_EVENT: (a0) => `${a0}-${c3595_7.EVENT}`,
GUILD_EVENT_ACTIVE: (a0) => `${a0}-${c3595_7.EVENT_ACTIVE}`,
GUILD_EVENT_UPCOMING: (a0) => `${a0}-${c3595_7.EVENT_UPCOMING}`,
CHANNEL_EVENT: (a0) => `${a0}-${c3595_7.EVENT}`,
CHANNEL_EVENT_ACTIVE: (a0) => `${a0}-${c3595_7.EVENT_ACTIVE}`,
CHANNEL_EVENT_UPCOMING: (a0) => `${a0}-${c3595_7.EVENT_UPCOMING}`
};
c3595_8 = new SecondaryIndexMap(function scheduledEventIndex(a0) {
const { guild_id, entity_id, channel_id } = a0;
const r3 = [guild_id];
if (entity_id != null) {
r3.push(entity_id);
}
r3.push(c3595_7.GUILD_EVENT(guild_id));
if (channel_id != null) {
r3.push(c3595_7.CHANNEL_EVENT(channel_id));
}
if (a0 != null && a0?.status === GuildScheduledEventStatus.ACTIVE) {
r3.push(c3595_7.EVENT_ACTIVE);
r3.push(c3595_7.GUILD_EVENT_ACTIVE(guild_id));
if (channel_id != null) {
r3.push(c3595_7.CHANNEL_EVENT_ACTIVE(channel_id));
}
}
if (!GuildScheduledEventStatusDone.has(a0.status)) {
r3.push(c3595_7.EVENT_UPCOMING);
r3.push(c3595_7.GUILD_EVENT_UPCOMING(guild_id));
if (channel_id != null) {
r3.push(c3595_7.CHANNEL_EVENT_UPCOMING(channel_id));
}
}
return r3;
}, scheduledEventSort);
env3595[9] = 0;
c3595_10 = [];
c3595_11 = "SERIES";
env3595[12] = {};
env3595[13] = {};
class GuildScheduledEventStore extends Module589.Store {
static displayName = "GuildScheduledEventStore";
constructor() {
super(...arguments);
}
initialize() {
this.waitFor(AuthenticationStore, GuildMemberStore);
}
getGuildScheduledEvent(a0) {
const r1 = a0 == null;
let r2 = null;
if (!r1) {
let r7 = c3595_8.get(a0);
if (r7 == null) {
r7 = null;
}
r2 = r7;
}
return r2;
}
getGuildEventCountByIndex(a0) {
return c3595_8.size(a0);
}
getGuildScheduledEventsForGuild(a0) {
return a0 == null ? [] : c3595_8.values(a0);
}
getGuildScheduledEventsByIndex(a0) {
return c3595_8.values(a0);
}
getRsvpVersion() {
return env3595[9];
}
getRsvp(a0, a1, a2) {
if (a0 == null) {
return null;
}
const r5 = a1 == null ? c3595_11 : a1;
const r7 = env3595[12][a0];
const r2 = r7 == null;
let r8 = void 0;
if (!r2) {
const r9 = r7[r5];
r8 = r9 == null ? void 0 : r9[a2];
}
return r8;
}
isInterestedInEventRecurrence(a0, a1) {
const id = AuthenticationStore.getId();
const rsvp = this.getRsvp(a0, null, id);
const rsvp2 = this.getRsvp(a0, a1, id);
const response = rsvp?.response;
const INTERESTED = GuildScheduledEventUserResponses.INTERESTED;
const response2 = rsvp2?.response;
const INTERESTED2 = GuildScheduledEventUserResponses.INTERESTED;
const response3 = rsvp2?.response;
let r21 = response === INTERESTED;
const UNINTERESTED = GuildScheduledEventUserResponses.UNINTERESTED;
if (r21) {
r21 = !(response3 === UNINTERESTED);
}
if (!r21) {
r21 = response2 === INTERESTED2;
}
return r21;
}
getUserCount(a0, a1) {
if (a0 == null) {
return 0;
}
const r7 = env3595[13][a0];
let r4 = r7 == null ? void 0 : r7[c3595_11];
if (r4 == null) {
r4 = 0;
}
let r11 = r4;
if (a1 != null) {
const r13 = env3595[13][a0];
let r5 = r13 == null ? void 0 : r13[a1];
if (r5 == null) {
r5 = 0;
}
r11 = r4 - r5;
}
return r11;
}
hasUserCount(a0, a1) {
const r4 = a1 == null ? c3595_11 : a1;
const r6 = env3595[13][a0];
return (r6 == null ? void 0 : r6[r4]) != null;
}
isActive(a0) {
let r0 = a0 != null;
if (r0) {
const r7 = c3595_8.get(a0);
r0 = r7 != null && r7?.status === GuildScheduledEventStatus.ACTIVE;
}
return r0;
}
getActiveEventByChannel(a0) {
if (a0 != null) {
return this.getGuildScheduledEventsByIndex(c3595_7.CHANNEL_EVENT_ACTIVE(a0))[0];
}
}
getUsersForGuildEvent(a0, a1) {
if (a0 == null) {
return {};
}
const r4 = a1 == null ? c3595_11 : a1;
const r6 = env3595[12][a0];
let r7 = r6 == null ? void 0 : r6[r4];
if (r7 == null) {
r7 = {};
}
return r7;
}
}
c3595_17 = GuildScheduledEventStore;
const r102 = new GuildScheduledEventStore(Dispatcher, {
CONNECTION_OPEN: function handleConnectionOpen({ guilds }) {
c3595_8.clear();
env3595[9] = 0;
env3595[12] = {};
env3595[13] = {};
c3595_10.forEach(saveEvent);
guilds.forEach((guild) => guild.guild_scheduled_events.forEach((guild_scheduled_event) => {
c3595_8.set(guild_scheduled_event.id, guild_scheduled_event);
env3595[9] = env3595[9] + 1;
}));
return true;
},
GUILD_CREATE: function handleGuildCreate({ guild }) {
let env15147;
const id = guild.id;
const r3 = env15147 = {
$parent: env3595
};
env15147[0] = false;
c3595_8.values(c3595_7.GUILD_EVENT(id)).forEach($mk76980(r3));
guild.guild_scheduled_events.forEach((guild_scheduled_event) => {
c3595_8.set(guild_scheduled_event.id, guild_scheduled_event);
env3595[9] = env3595[9] + 1;
});
return true;
},
GUILD_DELETE: function handleGuildDelete(a0) {
let env15148;
const id = a0.guild.id;
const r8 = env15148 = {
$parent: env3595
};
env15148[0] = true;
c3595_8.values(c3595_7.GUILD_EVENT(id)).forEach($mk76980(r8));
return true;
},
FETCH_GUILD_EVENT: function handleFetchGuildEvent({ guildScheduledEvent }) {
c3595_8.set(guildScheduledEvent.id, guildScheduledEvent);
env3595[9] = env3595[9] + 1;
},
FETCH_GUILD_EVENTS_FOR_GUILD: function handleFetchGuildEventsForGuild({ guildId, guildScheduledEvents }) {
Module12.difference(c3595_8.values(c3595_7.GUILD_EVENT(guildId), true).map((item) => item.id), guildScheduledEvents.map((guildScheduledEvent) => guildScheduledEvent.id)).forEach((item) => {
c3595_8.delete(item);
delete env3595[12][item];
delete env3595[13][item];
env3595[9] = env3595[9] + 1;
});
for (const item of guildScheduledEvents) {
saveEvent(item);
}
return true;
},
GUILD_SCHEDULED_EVENT_CREATE: handleGuildScheduledEventUpdateOrCreate,
GUILD_SCHEDULED_EVENT_UPDATE: handleGuildScheduledEventUpdateOrCreate,
GUILD_SCHEDULED_EVENT_DELETE: function handleGuildScheduledEventDelete(a0) {
const id = a0.guildScheduledEvent.id;
c3595_8.delete(id);
delete env3595[12][id];
delete env3595[13][id];
env3595[9] = env3595[9] + 1;
return true;
},
GUILD_SCHEDULED_EVENT_USER_ADD: function handleRsvpCreate({ userId, guildEventId, guildId, guildEventExceptionId, response }) {
let r12 = guildEventExceptionId;
if (r12 == null) {
r12 = c3595_11;
}
const r14 = env3595[12][guildEventId];
const r2 = r14 == null;
let r5 = void 0;
if (!r2) {
const r15 = r14[r12];
r5 = r15 == null ? void 0 : r15[userId];
}
if (r5 != null) {
removeGuildEventUser(r5, false);
}
let member = GuildMemberStore.getMember(guildId, userId);
if (member == null) {
member = void 0;
}
addGuildEventUser({
user_id: userId,
guild_scheduled_event_id: guildEventId,
member,
guild_scheduled_event_exception_id: guildEventExceptionId,
response
});
return true;
},
GUILD_SCHEDULED_EVENT_USER_REMOVE: function handleRsvpDelete(a0) {
removeGuildEventUser({
user_id: a0.userId,
guild_scheduled_event_id: a0.guildEventId,
guild_scheduled_event_exception_id: a0.guildEventExceptionId,
response: a0.response
});
},
GUILD_SCHEDULED_EVENT_RSVPS_FETCH_SUCESS: function handleFetchGuildEventsForUser(a0) {
a0.guildScheduledEventUsers.forEach((guildScheduledEventUser) => {
addGuildEventUser(guildScheduledEventUser, false, false);
});
env3595[9] = env3595[9] + 1;
return true;
},
GUILD_SCHEDULED_EVENT_USERS_FETCH_SUCCESS: function handleFetchUsersForGuildEventSuccess(a0) {
a0.guildScheduledEventUsers.forEach((guildScheduledEventUser) => {
addGuildEventUser(guildScheduledEventUser, false, false);
});
env3595[9] = env3595[9] + 1;
return true;
},
GUILD_SCHEDULED_EVENT_USER_COUNTS_FETCH_SUCCESS: function handleEventUserCountsFetchSuccess({ eventId, counts }) {
const eventCount = counts.eventCount;
if (env3595[13][eventId] == null) {
env3595[13][eventId] = {};
}
env3595[13][eventId][c3595_11] = eventCount;
SnowflakeUtils.forEachKey(counts.recurrenceCounts, (a0) => {
let r3 = a0;
const r10 = counts.eventCount - counts.recurrenceCounts[a0];
if (a0 == null) {
r3 = c3595_11;
}
if (env3595[13][eventId] == null) {
env3595[13][eventId] = {};
}
env3595[13][eventId][r3] = r10;
});
},
INVITE_RESOLVE_SUCCESS: function handleInviteResolveSuccess(a0) {
const guild_scheduled_event = a0.invite.guild_scheduled_event;
let r9 = guild_scheduled_event != null;
if (r9) {
c3595_8.set(guild_scheduled_event.id, guild_scheduled_event);
env3595[9] = env3595[9] + 1;
r9 = true;
}
return r9;
},
GUILD_SCHEDULED_EVENT_EXCEPTION_CREATE: handleGuildScheduledEventExceptionCreateOrUpdate,
GUILD_SCHEDULED_EVENT_EXCEPTION_UPDATE: handleGuildScheduledEventExceptionCreateOrUpdate,
GUILD_SCHEDULED_EVENT_EXCEPTION_DELETE: function handleGuildScheduledEventExceptionDelete({ eventException: eventException2 }) {
const r12 = c3595_8.get(eventException2.event_id);
if (r12 == null) {
return false;
}
const r16 = {
...r12,
guild_scheduled_event_exceptions: r12.guild_scheduled_event_exceptions.filter((guild_scheduled_event_exception) => guild_scheduled_event_exception.event_exception_id !== eventException2.event_exception_id)
};
c3595_8.set(r16.id, r16);
env3595[9] = env3595[9] + 1;
return true;
},
GUILD_SCHEDULED_EVENT_EXCEPTIONS_DELETE: function handleGuildScheduledEventExceptionsDelete({ eventId: eventId2 }) {
const r11 = c3595_8.get(eventId2);
let r12 = r11 != null;
if (r12) {
const r6 = {
...r11,
guild_scheduled_event_exceptions: []
};
c3595_8.set(r6.id, r6);
env3595[9] = env3595[9] + 1;
r12 = true;
}
return r12;
},
LOGOUT: function handleLogout() {
c3595_8.clear();
return true;
}
});
export default r102;
export { c3595_7 as StaticGuildEventIndexes };
export function isGuildScheduledEventActive(a0) {
return a0 != null && a0?.status === GuildScheduledEventStatus.ACTIVE;
}
export function isEventUpcoming(a0) {
return !GuildScheduledEventStatusDone.has(a0.status);
}
export function eventScheduledToStartWithin(a0, a1) {
return new Date(a0.scheduled_start_time).getTime() < Date.now() + 1000 * a1;
}
export function isGuildEventEnded(a0) {
return a0 != null && GuildScheduledEventStatusDone.has(a0.status);
}