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

49 lines
3.0 KiB
TypeScript

// Metro module 8172 (f8173).
import { ActivityTypes } from "../../Constants";
import { CRUNCHYROLL_CLIENT_ID } from "../connections/CrunchyrollConnectionConstants";
import { isSpotifyParty } from "../spotify/SpotifyConstants";
import { isListenedSessionEntry, isTopArtistEntry, isWatchedMediaEntry, isGamingLikeEntry } from "./ContentInventoryTypes";
import { ContentInventoryListenedMediaProvider } from "../../_bundle/Module8178";
import isCrunchyrollActivity from "../activities/utils/isCrunchyrollActivity";
import { isEntryActive } from "./utils";
const isMatchingListeningActivity = function isMatchingListeningActivity(a0, a1) {
let r16;
if (isListenedSessionEntry(a0)) {
const r26 = a0.extra.entries[0];
r16 = (r26 == null ? void 0 : r26.media?.provider) === ContentInventoryListenedMediaProvider.SPOTIFY;
} else {
r16 = !!isTopArtistEntry(a0) && a0.extra.media.provider === ContentInventoryListenedMediaProvider.SPOTIFY;
}
return !!r16 && isSpotifyParty(a1.party?.id);
};
export function isSpotifyEntry(a0) {
let r16;
if (isListenedSessionEntry(a0)) {
const r26 = a0.extra.entries[0];
r16 = (r26 == null ? void 0 : r26.media?.provider) === ContentInventoryListenedMediaProvider.SPOTIFY;
} else {
r16 = !!isTopArtistEntry(a0) && a0.extra.media.provider === ContentInventoryListenedMediaProvider.SPOTIFY;
}
return r16;
}
export function isCrunchyrollEntry(a0) {
return !!isWatchedMediaEntry(a0) && a0.extra.application_id === CRUNCHYROLL_CLIENT_ID;
}
export function isMatchingApplicationActivity({ extra }, a1) {
return extra != null && ("application_id" in a1 && a1.application_id === extra.application_id || ("game_name" in extra ? a1.name === extra.game_name : "activity_name" in extra && a1.name === extra.activity_name));
}
export { isMatchingListeningActivity };
export function isMatchingWatchActivity(a0, a1) {
const isCrunchyrollActivity2 = isCrunchyrollActivity(a1);
const r1 = isCrunchyrollActivity2 ? !(!!isWatchedMediaEntry(a0) && a0.extra.application_id === CRUNCHYROLL_CLIENT_ID) : !isCrunchyrollActivity2;
return r1 ? !r1 : a0.extra.media_title === a1.details;
}
export function findMatchingEntry(a0, a1) {
const r12 = a0.filter(isEntryActive);
return a1.type === ActivityTypes.PLAYING ? r12.filter(isGamingLikeEntry).find(({ extra }) => extra != null && ("application_id" in a1 && a1.application_id === extra.application_id || ("game_name" in extra ? a1.name === extra.game_name : "activity_name" in extra && a1.name === extra.activity_name))) : a1.type === ActivityTypes.LISTENING ? r12.filter(isListenedSessionEntry).find((item) => isMatchingListeningActivity(item, a1)) : a1.type === ActivityTypes.WATCHING ? a0.filter(isWatchedMediaEntry).find((item) => {
const isCrunchyrollActivity2 = isCrunchyrollActivity(a1);
const r1 = isCrunchyrollActivity2 ? !(!!isWatchedMediaEntry(item) && item.extra.application_id === CRUNCHYROLL_CLIENT_ID) : !isCrunchyrollActivity2;
return r1 ? !r1 : item.extra.media_title === a1.details;
}) : void 0;
}