Files
discord-decomp/modules/quests/utils/QuestDataUtils.tsx
T
2026-11-01 12:12:55 +02:00

206 lines
7.2 KiB
TypeScript

// Metro module 5983 (f5984).
import LocaleStore from "../../user_settings/LocaleStore";
import BountyStore from "../BountyStore";
import QuestStore from "../QuestStore";
import { BILLABLE_PLACEMENTS, DismissibleQuestContentFlags, EMPTY_AD_DECISION_DATA } from "../QuestConstants";
import { AdPlacement, QuestContent } from "../QuestTypes";
import { hasFlag } from "../../../_bundle/Module1384";
import NewAdRequestBehaviorExperiment from "../experiments/NewAdRequestBehaviorExperiment";
import SentryUtils_native from "../../../utils/SentryUtils.native";
let c3778_9, c3778_10;
const getQuestDeliveryDataForPlacement = function getQuestDeliveryDataForPlacement(a0, a1) {
let r17;
L6: {
if (a0 !== AdPlacement.QUEST_HOME_MOBILE_CAROUSEL) {
const VIDEO_MODAL_MOBILE = AdPlacement.VIDEO_MODAL_MOBILE;
r17 = null;
if (a0 !== VIDEO_MODAL_MOBILE) {
break L6;
}
}
const r1 = a1 == null;
r17 = null;
if (!r1) {
const adDecisionByPlacementAndAdCreativeId = BountyStore.getAdDecisionByPlacementAndAdCreativeId(a0, a1);
r17 = adDecisionByPlacementAndAdCreativeId != null ? {
questId: adDecisionByPlacementAndAdCreativeId.questId,
adCreativeId: adDecisionByPlacementAndAdCreativeId.adCreativeId,
adDecisionData: adDecisionByPlacementAndAdCreativeId.adDecisionData,
adContext: adDecisionByPlacementAndAdCreativeId.adContext,
metadataSealed: adDecisionByPlacementAndAdCreativeId.metadataSealed,
trafficMetadataSealed: adDecisionByPlacementAndAdCreativeId.trafficMetadataSealed
} : null;
}
}
if (r17 != null) {
return r17;
}
const enableNewRequestBehavior = NewAdRequestBehaviorExperiment.getConfig({
location: "getQuestDeliveryDataForPlacement"
}).enableNewRequestBehavior;
const r40 = QuestStore.questAdDecisionByPlacement.get(a0);
if (a0 === AdPlacement.QUEST_HOME_BANNER_DESKTOP && r40 != null) {
return {
questId: r40.questId,
adCreativeId: r40.adCreativeId,
adDecisionData: r40.adDecisionData,
adContext: r40.adContext,
metadataSealed: r40.metadataSealed,
trafficMetadataSealed: r40.trafficMetadataSealed
};
}
if (enableNewRequestBehavior) {
return r40 == null ? null : {
questId: r40.questId,
adCreativeId: r40.adCreativeId,
adDecisionData: r40.adDecisionData,
adContext: r40.adContext,
metadataSealed: r40.metadataSealed,
trafficMetadataSealed: r40.trafficMetadataSealed
};
}
const r47 = QuestStore.questToDeliverForPlacement.get(a0);
return r47 == null ? null : {
questId: r47.quest.id,
adCreativeId: r47.quest.id,
adDecisionData: r47.adDecisionData,
adContext: r47.adContext,
metadataSealed: r47.metadataSealed,
trafficMetadataSealed: r47.trafficMetadataSealed
};
};
c3778_9 = 2592000000;
const r25 = {};
r25[QuestContent.QUEST_BAR] = AdPlacement.DESKTOP_ACCOUNT_PANEL_AREA;
r25[QuestContent.QUEST_BAR_V2] = AdPlacement.DESKTOP_ACCOUNT_PANEL_AREA;
r25[QuestContent.QUEST_BAR_MOBILE] = AdPlacement.MOBILE_HOME_DOCK_AREA;
r25[QuestContent.QUEST_HOME_HERO] = AdPlacement.QUEST_HOME_BANNER_DESKTOP;
r25[QuestContent.QUEST_HOME_HERO_SHELF] = AdPlacement.QUEST_HOME_BANNER_DESKTOP;
r25[QuestContent.QUEST_HOME_MOBILE_CAROUSEL] = AdPlacement.QUEST_HOME_MOBILE_CAROUSEL;
r25[QuestContent.VIDEO_MODAL_MOBILE] = AdPlacement.VIDEO_MODAL_MOBILE;
c3778_10 = r25;
export const THIRTY_DAYS_MS = 2592000000;
export function earnedDecisionIsValid(a0) {
return a0 != null && a0.fetchedAt + a0.ttlMillis >= Date.now();
}
export function findQuestOrReplacement(a0, a1, a2) {
const r6 = Array.isArray(a1) ? new Map(a1.map((item) => [item.id, item])) : a1;
const r19 = Array.isArray(a2) ? new Map(a2.map((item) => [item.id, item])) : a2;
const r30 = r6.get(a0);
if (r30 != null) {
return r30;
}
const replacementId = r19.get(a0)?.replacementId;
return replacementId != null ? r6.get(replacementId) : void 0;
}
export function isDismissible(a0) {
return Object.keys(DismissibleQuestContentFlags).includes(QuestContent[a0]);
}
export function isDismissed(a0, a1) {
if (Object.keys(DismissibleQuestContentFlags).includes(QuestContent[a1])) {
return hasFlag(a0.dismissedQuestContent, DismissibleQuestContentFlags[QuestContent[a1]]);
}
return false;
}
export function isQuestConfigExpired(a0) {
return new Date(a0.expiresAt).valueOf() <= Date.now();
}
export function isQuestExpired(a0) {
return new Date(a0.config.expiresAt).valueOf() <= Date.now();
}
export function getIsQuestExpiredButWithinThirtyDayLookback(a0) {
if (new Date(a0.config.expiresAt).valueOf() <= Date.now()) {
const r0 = Date.now() - c3778_9;
const r30 = new Date(a0.config.expiresAt).valueOf();
return a0.config.expiresAt != null && !(r30 <= r0);
}
return false;
}
export function findNextUpcomingExpirationEpochMs(a0) {
let r0 = null;
const r3 = Date.now();
for (const item of a0) {
const r31 = new Date(item.config.expiresAt).valueOf();
if (!(r31 <= r3) && (r0 == null || r31 < r0)) {
r0 = r31;
}
}
return r0;
}
export function hasUnclaimedReward(a0) {
return a0 != null && a0.completedAt != null && a0.claimedAt == null;
}
export function getQuestFormattedDate(a0, r5 = {
dateStyle: "short"
}) {
return a0 == null ? "" : new Date(a0).toLocaleDateString(LocaleStore.locale, r5);
}
export function getQuestForPlacement(a0, a1, a2) {
const r10 = a1.get(a2);
if (r10 != null) {
const r15 = a0.get(r10.quest.id);
return r15 == null ? void 0 : new Date(r15.config.expiresAt).valueOf() <= Date.now() ? void 0 : r15;
}
}
export function getQuestPlacementFromQuestContent(a0) {
return c3778_10[a0];
}
export function isBillableQuestContent(a0) {
const r4 = c3778_10[a0];
return r4 != null && BILLABLE_PLACEMENTS.has(r4);
}
export function getAdDecisionData(a0, a1) {
const r8 = c3778_10[a1];
if (r8 == null) {
return EMPTY_AD_DECISION_DATA;
}
let r10 = getQuestDeliveryDataForPlacement(r8, a0);
if (r10 == null) {
r10 = {};
}
const { adDecisionData, questId, adCreativeId } = r10;
return adDecisionData == null ? EMPTY_AD_DECISION_DATA : questId !== a0 ? adCreativeId !== a0 ? adDecisionData.ad_id !== a0 ? EMPTY_AD_DECISION_DATA : adDecisionData : adDecisionData : adDecisionData;
}
export function getAdMetadataSealed(a0, a1) {
const r6 = c3778_10[a0];
if (r6 != null) {
return getQuestDeliveryDataForPlacement(r6, a1)?.metadataSealed;
}
}
export function getAdTrafficMetadataSealed(a0, a1, a2) {
L6: {
const r8 = c3778_10[a0];
if (r8 != null) {
let r10 = getQuestDeliveryDataForPlacement(r8, a2);
if (r10 == null) {
r10 = {};
}
const { trafficMetadataSealed, questId } = r10;
if (trafficMetadataSealed != null) {
if (a2 == null && questId !== a1) {
break L6;
}
return trafficMetadataSealed;
}
}
}
if (a1 != null) {
return QuestStore.getQuest(a1)?.trafficMetadataSealed;
}
}
export function getAdContext(a0, a1) {
const r6 = c3778_10[a0];
if (r6 != null) {
return getQuestDeliveryDataForPlacement(r6, a1)?.adContext;
}
}
export function captureQuestsException(a0, a1) {
SentryUtils_native.captureException(a0, {
...a1,
tags: {
...a1?.tags,
app_context: "quests"
}
});
}