320 lines
9.8 KiB
TypeScript
320 lines
9.8 KiB
TypeScript
// Metro module 4635 (f4636).
|
|
import _slicedToArray from "../../_bundle/_slicedToArray";
|
|
import UserSettingsProtoStore from "../user_settings/UserSettingsProtoStore";
|
|
import UserStore from "../../stores/UserStore";
|
|
import { DEFAULT_SOUND_GUILD_ID } from "./SoundboardConstants";
|
|
import { AnalyticEvents } from "../../Constants";
|
|
import { UserSettingsTypes } from "../user_settings/UserSettingsConstants";
|
|
import Frecency from "../../lib/Frecency";
|
|
import Module3771 from "../../_bundle/Module3771";
|
|
import Module12 from "../../_bundle/Module12";
|
|
import AnalyticsUtils from "../../utils/AnalyticsUtils";
|
|
import { amplitudeToPerceptual } from "../../utils/PerceptualVolumeUtils";
|
|
import { SoundboardSettings } from "../user_settings/UserSettings";
|
|
import SnowflakeUtils from "../../utils/SnowflakeUtils";
|
|
import Module589 from "../../_bundle/Module589";
|
|
import Dispatcher from "../../Dispatcher";
|
|
let c2830_9, c2830_10, c2830_11, c2830_12, NOT_FETCHED, NOT_FETCHED2, c2830_15, c2830_16, c2830_17, c2830_18, c2830_19, c2830_20, c2830_21, c2830_22, syncLocalSoundboardMutesFromUserSettings;
|
|
const handleSoundCreateOrUpdate = function handleSoundCreateOrUpdate({ sound }) {
|
|
const r16 = c2830_10.get(sound.guildId);
|
|
const r17 = r16 == null ? void 0 : r16.findIndex((item) => item.soundId === sound.soundId);
|
|
if (r16 != null && (r17 != null && r17 !== -1)) {
|
|
r16[r17] = sound;
|
|
c2830_10.set(sound.guildId, [...r16]);
|
|
} else if (r16 != null) {
|
|
if (r16 != null) {
|
|
r16.push(sound);
|
|
}
|
|
c2830_10.set(sound.guildId, [...r16]);
|
|
}
|
|
};
|
|
syncLocalSoundboardMutesFromUserSettings = function syncLocalSoundboardMutesFromUserSettings(a0) {
|
|
let r3 = a0 == null ? void 0 : a0.audioContextSettings?.user;
|
|
if (r3 == null) {
|
|
r3 = {};
|
|
}
|
|
for (const item of Object.entries(r3)) {
|
|
const r36 = _slicedToArray(item, 2);
|
|
const r37 = r36[0];
|
|
const soundboardMuted = r36[1].soundboardMuted;
|
|
if (soundboardMuted) {
|
|
c2830_12.add(r37);
|
|
} else {
|
|
c2830_12.delete(r37);
|
|
}
|
|
}
|
|
for (const item2 of c2830_12.keys()) {
|
|
if (r3[item2] == null) {
|
|
c2830_12.delete(item2);
|
|
}
|
|
}
|
|
};
|
|
c2830_9 = {
|
|
NOT_FETCHED: 0,
|
|
0: "NOT_FETCHED",
|
|
FETCHING: 1,
|
|
1: "FETCHING",
|
|
FETCHED: 2,
|
|
2: "FETCHED"
|
|
};
|
|
c2830_10 = new Map();
|
|
c2830_11 = new Map();
|
|
c2830_12 = new Set();
|
|
NOT_FETCHED = c2830_9.NOT_FETCHED;
|
|
NOT_FETCHED2 = c2830_9.NOT_FETCHED;
|
|
c2830_15 = new Set();
|
|
c2830_16 = new Map();
|
|
c2830_17 = Date.UTC(2026, 5, 29);
|
|
c2830_18 = new Frecency({
|
|
computeBonus: () => 100,
|
|
computeWeight: (a0) => {
|
|
if (a0 > Module3771().diff(c2830_17, "days")) {
|
|
return 0;
|
|
}
|
|
return a0 <= 3 ? 100 : a0 <= 15 ? 70 : a0 <= 30 ? 50 : a0 <= 45 ? 30 : a0 <= 80 ? 10 : 1;
|
|
},
|
|
lookupKey: (a0) => a0,
|
|
afterCompute: () => {}
|
|
});
|
|
c2830_19 = [];
|
|
c2830_20 = false;
|
|
c2830_21 = false;
|
|
c2830_22 = Module12.debounce((a0, a1) => {
|
|
AnalyticsUtils.track(AnalyticEvents.UPDATE_SOUNDBOARD_SETTINGS, {
|
|
volume: Math.round(amplitudeToPerceptual(a0)),
|
|
location_stack: a1
|
|
});
|
|
SoundboardSettings.updateSetting({
|
|
volume: a0
|
|
});
|
|
}, 1000);
|
|
class SoundboardStore extends Module589.Store {
|
|
static displayName = "SoundboardStore";
|
|
initialize() {
|
|
this.waitFor(UserSettingsProtoStore, UserStore);
|
|
syncLocalSoundboardMutesFromUserSettings(UserSettingsProtoStore.settings);
|
|
c2830_21 = SoundboardSettings.getSetting()?.volume === 0;
|
|
}
|
|
getOverlaySerializedState() {
|
|
return {
|
|
soundboardSounds: Object.fromEntries(c2830_10),
|
|
favoritedSoundIds: Array.from(c2830_15),
|
|
localSoundboardMutes: Array.from(c2830_12)
|
|
};
|
|
}
|
|
getSounds() {
|
|
return c2830_10;
|
|
}
|
|
getSoundsForGuild(a0) {
|
|
return c2830_10.get(a0);
|
|
}
|
|
getSound(a0, c14373_0) {
|
|
let r7 = c2830_10.get(a0);
|
|
if (r7 == null) {
|
|
r7 = [];
|
|
}
|
|
return r7.find((item) => item.soundId === c14373_0);
|
|
}
|
|
getSoundById(c14374_0) {
|
|
return Array.from(c2830_10.values()).flat().find((item) => item.soundId === c14374_0);
|
|
}
|
|
isFetchingSounds() {
|
|
return NOT_FETCHED2 === c2830_9.FETCHING;
|
|
}
|
|
isFetchingDefaultSounds() {
|
|
return NOT_FETCHED === c2830_9.FETCHING;
|
|
}
|
|
isFetching() {
|
|
return this.isFetchingSounds() || this.isFetchingDefaultSounds();
|
|
}
|
|
shouldFetchDefaultSounds() {
|
|
return NOT_FETCHED === c2830_9.NOT_FETCHED;
|
|
}
|
|
hasFetchedDefaultSounds() {
|
|
return NOT_FETCHED === c2830_9.FETCHED;
|
|
}
|
|
isUserPlayingSounds(a0) {
|
|
const r7 = c2830_16.get(a0);
|
|
return r7 != null && r7 > 0;
|
|
}
|
|
isPlayingSound(a0) {
|
|
return c2830_11.get(a0) != null;
|
|
}
|
|
isFavoriteSound(a0) {
|
|
return c2830_15.has(a0);
|
|
}
|
|
getFavorites() {
|
|
return c2830_15;
|
|
}
|
|
getFrequentlyUsedSoundIds() {
|
|
return c2830_18.frequently;
|
|
}
|
|
hasPendingUsage() {
|
|
return c2830_19.length > 0;
|
|
}
|
|
get playedSoundFrecencyWithoutFetchingLatest() {
|
|
return c2830_18;
|
|
}
|
|
isLocalSoundboardMuted(a0) {
|
|
return c2830_12.has(a0);
|
|
}
|
|
isSoundboardVolumeMuted() {
|
|
return c2830_21;
|
|
}
|
|
hasHadOtherUserPlaySoundInSession() {
|
|
return c2830_20;
|
|
}
|
|
hasFetchedAllSounds() {
|
|
return NOT_FETCHED2 === c2830_9.FETCHED && NOT_FETCHED === c2830_9.FETCHED;
|
|
}
|
|
isFetchingAnySounds() {
|
|
return NOT_FETCHED2 === c2830_9.FETCHING || NOT_FETCHED === c2830_9.FETCHING;
|
|
}
|
|
}
|
|
const soundboardStore = new SoundboardStore(Dispatcher, {
|
|
LOGOUT: function handleReset() {
|
|
c2830_10.clear();
|
|
c2830_11.clear();
|
|
c2830_16.clear();
|
|
c2830_20 = false;
|
|
NOT_FETCHED2 = c2830_9.NOT_FETCHED;
|
|
NOT_FETCHED = c2830_9.NOT_FETCHED;
|
|
c2830_21 = false;
|
|
c2830_19 = [];
|
|
c2830_18.overwriteHistory({});
|
|
},
|
|
GUILD_SOUNDBOARD_FETCH: function handleSoundboardFetch() {
|
|
NOT_FETCHED2 = c2830_9.FETCHING;
|
|
},
|
|
GUILD_SOUNDBOARD_SOUND_CREATE: handleSoundCreateOrUpdate,
|
|
GUILD_SOUNDBOARD_SOUND_UPDATE: handleSoundCreateOrUpdate,
|
|
GUILD_SOUNDBOARD_SOUND_DELETE: function handleSoundDelete({ soundId, guildId }) {
|
|
const r15 = c2830_10.get(guildId);
|
|
const r16 = r15 == null ? void 0 : r15.findIndex((item) => item.soundId === soundId);
|
|
if (!(r15 == null || r16 == null || r16 < 0)) {
|
|
r15.splice(r16, 1);
|
|
c2830_10.set(guildId, [...r15]);
|
|
}
|
|
},
|
|
GUILD_SOUNDBOARD_SOUND_PLAY_START: function handleSoundPlayStart({ soundId: soundId2, userId }) {
|
|
let r13 = c2830_11.get(soundId2);
|
|
if (r13 == null) {
|
|
r13 = 0;
|
|
}
|
|
const r9 = r13 + 1;
|
|
let r15 = c2830_16.get(userId);
|
|
if (r15 == null) {
|
|
r15 = 0;
|
|
}
|
|
const r7 = r15 + 1;
|
|
c2830_11.set(soundId2, r9);
|
|
c2830_16.set(userId, r7);
|
|
if (userId !== UserStore.getCurrentUser()?.id) {
|
|
c2830_20 = true;
|
|
}
|
|
},
|
|
GUILD_SOUNDBOARD_SOUND_PLAY_END: function handleSoundPlayEnd({ soundId: soundId2, userId }) {
|
|
let r10 = c2830_11.get(soundId2);
|
|
if (r10 == null) {
|
|
r10 = 0;
|
|
}
|
|
const r1 = r10 - 1;
|
|
let r13 = c2830_16.get(userId);
|
|
if (r13 == null) {
|
|
r13 = 0;
|
|
}
|
|
const r14 = r13 - 1;
|
|
if (r1 <= 0) {
|
|
c2830_11.delete(soundId2);
|
|
} else {
|
|
c2830_11.set(soundId2, r1);
|
|
}
|
|
if (r14 <= 0) {
|
|
c2830_16.delete(userId);
|
|
} else {
|
|
c2830_16.set(userId, r14);
|
|
}
|
|
},
|
|
GUILD_SOUNDBOARD_SOUNDS_UPDATE: function handleSoundsUpdate(a0) {
|
|
c2830_10.set(a0.guildId, a0.soundboardSounds);
|
|
},
|
|
USER_SOUNDBOARD_SET_VOLUME: function handleSetLocalVolume({ volume, location: location2 }) {
|
|
const r2 = c2830_21;
|
|
c2830_21 = volume === 0;
|
|
c2830_22(volume, location2);
|
|
if (r2 !== c2830_21) {
|
|
c2830_22.flush();
|
|
}
|
|
},
|
|
SOUNDBOARD_TRACK_USAGE: function handleTrackUsage({ soundId: soundId2 }) {
|
|
c2830_18.track(soundId2);
|
|
c2830_19.push({
|
|
key: soundId2,
|
|
timestamp: Date.now()
|
|
});
|
|
c2830_18.compute();
|
|
},
|
|
VOICE_CHANNEL_SELECT: function handleVoiceChannelSelect() {
|
|
c2830_11.clear();
|
|
c2830_16.clear();
|
|
},
|
|
USER_SETTINGS_PROTO_UPDATE: function handleUserSettingsProtoUpdate({ settings, wasSaved }) {
|
|
const { type, proto } = settings;
|
|
if (UserSettingsTypes.FRECENCY_AND_FAVORITES_SETTINGS === type) {
|
|
const r30 = Set;
|
|
let r33 = proto == null ? void 0 : proto.favoriteSoundboardSounds?.soundIds;
|
|
if (r33 == null) {
|
|
r33 = [];
|
|
}
|
|
c2830_15 = new r30(r33);
|
|
if (wasSaved) {
|
|
c2830_19 = [];
|
|
}
|
|
if (proto?.playedSoundFrecency != null) {
|
|
let playedSounds = proto.playedSoundFrecency.playedSounds;
|
|
if (playedSounds == null) {
|
|
playedSounds = {};
|
|
}
|
|
c2830_18.overwriteHistory(Module12.mapValues(playedSounds, (a0) => ({
|
|
...a0,
|
|
recentUses: a0.recentUses.map(Number).filter((item) => item > 0)
|
|
})), c2830_19);
|
|
}
|
|
} else if (UserSettingsTypes.PRELOADED_USER_SETTINGS === type) {
|
|
syncLocalSoundboardMutesFromUserSettings(proto);
|
|
c2830_21 = SoundboardSettings.getSetting()?.volume === 0;
|
|
}
|
|
},
|
|
SOUNDBOARD_FETCH_DEFAULT_SOUNDS: function handleFetchDefaultSounds() {
|
|
NOT_FETCHED = c2830_9.FETCHING;
|
|
},
|
|
SOUNDBOARD_FETCH_DEFAULT_SOUNDS_SUCCESS: function handleFetchDefaultSoundsSuccess(a0) {
|
|
c2830_10.set(DEFAULT_SOUND_GUILD_ID, a0.soundboardSounds);
|
|
NOT_FETCHED = c2830_9.FETCHED;
|
|
},
|
|
SOUNDBOARD_SOUNDS_RECEIVED: function handleSoundboardSoundsReceived(a0) {
|
|
a0.updates.forEach((update) => {
|
|
c2830_10.set(update.guildId, update.sounds);
|
|
});
|
|
NOT_FETCHED2 = c2830_9.FETCHED;
|
|
},
|
|
GUILD_DELETE: function handleGuildDelete(a0) {
|
|
c2830_10.delete(a0.guild.id);
|
|
},
|
|
AUDIO_TOGGLE_LOCAL_SOUNDBOARD_MUTE: function handleToggleLocalSoundboardMute({ userId }) {
|
|
const r6 = c2830_12.has(userId);
|
|
if (r6) {
|
|
c2830_12.delete(userId);
|
|
} else {
|
|
c2830_12.add(userId);
|
|
}
|
|
},
|
|
OVERLAY_INITIALIZE: function handleOverlayInitialize({ soundboardStoreState }) {
|
|
c2830_10 = new Map(SnowflakeUtils.entries(soundboardStoreState.soundboardSounds));
|
|
c2830_15 = new Set(soundboardStoreState.favoritedSoundIds);
|
|
c2830_12 = new Set(soundboardStoreState.localSoundboardMutes);
|
|
}
|
|
});
|
|
export default soundboardStore;
|
|
export { c2830_9 as FetchState };
|