Files
discord-decomp/sources/modules/icymi/ICYMIAnalytics.tsx
T
2026-07-27 16:20:00 +03:00

412 lines
22 KiB
TypeScript

/* Metro module 9589; source: modules/icymi/ICYMIAnalytics.tsx; dependencies: [9569, 661, 8370, 7230, 683, 2] */
function _fun75101(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#75101, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:6, offset: 0x01da2b0e, size: 429 bytes, params: 8, frame: 19
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const icymiStore = importDefault(9569) /* metro dependency 9569: ICYMIStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_4 = constantsModule.ChannelTypes;
const env0_5 = constantsModule.AnalyticEvents;
object2 = {trackItemInteraction: trackItemInteraction, trackItemShortImpression: trackItemShortImpression,
trackItemLongImpression: trackItemLongImpression, trackFeedLoaded: trackFeedLoaded,
trackFeedShown: function(a0) {
var defaultImport = importDefault(dependencyMap[4]);
var FEED_SHOWN = AnalyticEvents.FEED_SHOWN;
var object = {};
object.load_id = ICYMIStore.getLoadId();
object.home_session_id = a0.homeSessionId;
object.variant = a0.variant;
defaultImport.track(FEED_SHOWN, object);
}, trackFeedFirstScrollStarted: function() {
var defaultImport = importDefault(dependencyMap[4]);
var HOME_FIRST_SCROLL_STARTED = AnalyticEvents.HOME_FIRST_SCROLL_STARTED;
var object = {};
object.load_id = ICYMIStore.getLoadId();
object.home_session_id = 'gravity';
defaultImport.track(HOME_FIRST_SCROLL_STARTED, object);
}, trackFeedFeedbackPromptViewed: function() {
importDefault(dependencyMap[4]).track(AnalyticEvents.HOME_FEEDBACK_PROMPT_VIEWED);
}, trackFeedFeedbackSubmitted: function(a0) {
var defaultImport = importDefault(dependencyMap[4]);
var HOME_FEEDBACK_SUBMITTED = AnalyticEvents.HOME_FEEDBACK_SUBMITTED;
var object = {};
object.load_id = ICYMIStore.getLoadId();
object.home_session_id = 'gravity';
copyDataProperties(object, a0, ICYMIStore);
defaultImport.track(HOME_FEEDBACK_SUBMITTED, object);
}, trackFeedOnboardingScreenSkipped: function(a0) {
var defaultImport = importDefault(dependencyMap[4]);
var ICYMI_ONBOARDING_SCREEN_SKIPPED = AnalyticEvents.ICYMI_ONBOARDING_SCREEN_SKIPPED;
defaultImport.track(ICYMI_ONBOARDING_SCREEN_SKIPPED, {location: a0.location});
}, trackFeedOnboardingGuildToggled: function(a0) {
var defaultImport = importDefault(dependencyMap[4]);
var ICYMI_ONBOARDING_GUILD_TOGGLED = AnalyticEvents.ICYMI_ONBOARDING_GUILD_TOGGLED;
defaultImport.track(ICYMI_ONBOARDING_GUILD_TOGGLED, {guild_id: a0.guildId, toggled: a0.toggled});
}, trackFeedOnboardingCategoryToggled: function(a0) {
var defaultImport = importDefault(dependencyMap[4]);
var ICYMI_ONBOARDING_CATEGORY_TOGGLED = AnalyticEvents.ICYMI_ONBOARDING_CATEGORY_TOGGLED;
defaultImport.track(ICYMI_ONBOARDING_CATEGORY_TOGGLED, {category_id: a0.categoryId, toggled: a0.toggled});
}, trackFeedEmptyLoadingSeen: function() {
var defaultImport = importDefault(dependencyMap[4]);
var ICYMI_FEED_EMPTY_LOADING_SEEN = AnalyticEvents.ICYMI_FEED_EMPTY_LOADING_SEEN;
var object = {};
object.load_id = ICYMIStore.getLoadId();
object.version = ICYMIStore.getVersion();
defaultImport.track(ICYMI_FEED_EMPTY_LOADING_SEEN, object);
}, trackFeedEmptyLoadingComplete: function(a0) {
var defaultImport = importDefault(dependencyMap[4]);
var ICYMI_FEED_EMPTY_LOADING_COMPLETE = AnalyticEvents.ICYMI_FEED_EMPTY_LOADING_COMPLETE;
var object = {};
object.load_id = ICYMIStore.getLoadId();
object.dwell_time_ms = a0.dwellTimeMs;
object.version = ICYMIStore.getVersion();
defaultImport.track(ICYMI_FEED_EMPTY_LOADING_COMPLETE, object);
}, trackFeedEmptyLoadingAbandoned: function(a0) {
var defaultImport = importDefault(dependencyMap[4]);
var ICYMI_FEED_EMPTY_LOADING_ABANDONED = AnalyticEvents.ICYMI_FEED_EMPTY_LOADING_ABANDONED;
var object = {};
object.load_id = ICYMIStore.getLoadId();
object.dwell_time_ms = a0.dwellTimeMs;
object.version = ICYMIStore.getVersion();
defaultImport.track(ICYMI_FEED_EMPTY_LOADING_ABANDONED, object);
}, trackFeedSessionStarted: trackFeedSessionStarted, trackFeedSessionCompleted: trackFeedSessionCompleted,
trackFeedItemDwell1s: trackFeedItemDwell1s, trackFeedItemDwelled: trackFeedItemDwelled,
trackFeedItemActioned: trackFeedItemActioned, trackFeedFilterActioned: trackFeedFilterActioned,
trackFeedPageActioned: trackFeedPageActioned};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/icymi/ICYMIAnalytics.tsx');
exports.DEFAULT_UX_VARIATION = 'default';
exports.ICYMIAnalytics = object2;
}
function listItemToType(a0) { // fn#75102, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:167, offset: 0x01da2cbb, size: 239 bytes, params: 2, frame: 16
const kind = a0.data.kind;
if (kind === 'end') {
return 'end';
}
if (kind === 'loading') {
return 'loading';
}
const value = 'message';
if (value === kind) {
return a0.channelType !== ChannelTypes.GUILD_ANNOUNCEMENT ? value : 'announcement';
}
if (kind === 'guildEvent') {
return 'guild_event';
}
if (kind === 'contentInventory') {
return a0.data.content.content_type !== (require(8370) /* metro dependency 8370: ContentInventoryEntryType */).ContentInventoryEntryType.CUSTOM_STATUS ? 'hotwheels_gaming_activity' : 'hotwheels_custom_status';
}
if (kind === 'recommendedGuilds') {
return 'recommended_guilds';
}
if (kind === 'forumThread') {
return 'forum_thread';
}
if (kind === 'icymiHeader') {
return 'icymi_header';
}
return 'unknown';
}
function dehydratedItemToType(a0) { // fn#75103, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:701, offset: 0x01da2daa, size: 256 bytes, params: 2, frame: 15
const type = a0.type;
const ICYMIItemTypes = (require(7230) /* metro dependency 7230: ICYMITypes */).ICYMIItemTypes;
const MESSAGE = ICYMIItemTypes.MESSAGE;
if (MESSAGE === type) {
return a0.data.channel_type !== ChannelTypes.GUILD_ANNOUNCEMENT ? 'message' : 'announcement';
}
const ACTIVITY = ICYMIItemTypes.ACTIVITY;
if (ACTIVITY === type) {
return 'hotwheels_gaming_activity';
}
const CUSTOM_STATUS = ICYMIItemTypes.CUSTOM_STATUS;
if (CUSTOM_STATUS === type) {
return 'hotwheels_custom_status';
}
const GUILD_EVENT = ICYMIItemTypes.GUILD_EVENT;
if (GUILD_EVENT === type) {
return 'guild_event';
}
const RECOMMENDED_GUILDS = ICYMIItemTypes.RECOMMENDED_GUILDS;
if (RECOMMENDED_GUILDS === type) {
return 'recommended_guilds';
}
}
function trackItemInteraction(a0) { // fn#75104, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:1115, offset: 0x01da2eaa, size: 189 bytes, params: 2, frame: 18
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_ITEM_INTERACTED = AnalyticEvents.FEED_ITEM_INTERACTED;
const object2 = {};
object2.load_id = ICYMIStore.getLoadId();
object2.feed_item_type = a0.type;
object2.feed_item_id = a0.id;
object2.home_session_id = 'gravity';
object2.action_type = a0.actionType;
object2.feed_item_index = ICYMIStore.getIndexInHydratedFeed(a0.id);
object2.icymi_session_id = a0.icymiSessionId;
object2.impression_id = a0.impressionId;
object2.ux_variation = a0.uxVariation;
object2.session_interaction_index = a0.sessionInteractionIndex;
Reflect.apply(track, defaultImport, [FEED_ITEM_INTERACTED, object2]);
}
function trackItemShortImpression(a0, a1, a2) { // fn#75105, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:1482, offset: 0x01da2f67, size: 234 bytes, params: 4, frame: 19
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_ITEM_SEEN_BATCH = AnalyticEvents.FEED_ITEM_SEEN_BATCH;
const object2 = {};
object2.load_id = ICYMIStore.getLoadId();
object2.home_session_id = 'gravity';
object2.feed_item_ids = a0.map(function(a0) {
return a0.item.id;
});
object2.feed_item_types = a0.map(function(a0) {
return listItemToType(a0.item);
});
object2.num_items = a0.length;
object2.all_feed_item_ids = a1.map(function(a0) {
return a0.id;
});
object2.all_feed_item_types = a1.map(function(a0) {
return a0.type;
});
object2.num_all_items = a1.length;
object2.all_feed_item_indices = a1.map(function(a0, a1) {
return a1;
});
object2.feed_version = a2;
object2.version = 3;
Reflect.apply(track, defaultImport, [FEED_ITEM_SEEN_BATCH, object2]);
}
function trackItemLongImpression(a0, a1, a2) { // fn#75111, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:1871, offset: 0x01da3069, size: 234 bytes, params: 4, frame: 19
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_ITEM_SEEN_LONG = AnalyticEvents.FEED_ITEM_SEEN_LONG;
const object2 = {};
object2.load_id = ICYMIStore.getLoadId();
object2.home_session_id = 'gravity';
object2.feed_item_ids = a0.map(function(a0) {
return a0.item.id;
});
object2.feed_item_types = a0.map(function(a0) {
return listItemToType(a0.item);
});
object2.num_items = a0.length;
object2.all_feed_item_ids = a1.map(function(a0) {
return a0.id;
});
object2.all_feed_item_types = a1.map(function(a0) {
return a0.type;
});
object2.num_all_items = a1.length;
object2.all_feed_item_indices = a1.map(function(a0, a1) {
return a1;
});
object2.feed_version = a2;
object2.version = 3;
Reflect.apply(track, defaultImport, [FEED_ITEM_SEEN_LONG, object2]);
}
function trackFeedLoaded({unreadFeedItems, readFeedItems, newTrackingProps, homeSessionId, hasNewContent}) { // fn#75117, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:2258, offset: 0x01da3153, size: 222 bytes, params: 2, frame: 21
unreadFeedItems.forEach(_fun75118);
readFeedItems.forEach(_fun75119);
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_LOADED = AnalyticEvents.FEED_LOADED;
const object2 = {};
copyDataProperties(object2, newTrackingProps, undefined);
object2['home_session_id'] = homeSessionId;
object2['tab_badged'] = hasNewContent;
object2['unread_feed_item_ids'] = [];
object2['read_feed_item_ids'] = [];
object2['unread_feed_item_types'] = [];
object2['read_feed_item_types'] = [];
Reflect.apply(track, defaultImport, [FEED_LOADED, object2]);
}
function trackFeedSessionStarted({sessionStartTimeMs, icymiSessionId, previousIcymiSessionCount, uxVariation}) { // fn#75130, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:3923, offset: 0x01da35be, size: 131 bytes, params: 2, frame: 17
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_SESSION_STARTED = AnalyticEvents.FEED_SESSION_STARTED;
const object2 = {};
object2.load_id = ICYMIStore.getLoadId();
object2.version = ICYMIStore.getVersion();
object2.session_start_time_ms = sessionStartTimeMs;
object2.icymi_session_id = icymiSessionId;
object2.previous_icymi_session_count = previousIcymiSessionCount;
object2.ux_variation = uxVariation;
Reflect.apply(track, defaultImport, [FEED_SESSION_STARTED, object2]);
}
function trackFeedSessionCompleted({sessionDurationMs, sessionStartTimeMs, sessionEndTimeMs, impressionCount, uniqueImpressionCount, icymiSessionId, feedReloadCount, feedDwelledItemsChangedCount, feedFetchCount, impressionItemTypes, latestDwellStartTimeMs, previousIcyMiSessionCount, uxVariation, interactionCount, dwelledCount, uniqueDwelledCount}) { // fn#75131, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:4197, offset: 0x01da3641, size: 285 bytes, params: 2, frame: 17
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_SESSION_COMPLETED = AnalyticEvents.FEED_SESSION_COMPLETED;
const object2 = {};
object2.load_id = ICYMIStore.getLoadId();
object2.version = ICYMIStore.getVersion();
object2.session_duration_ms = sessionDurationMs;
object2.session_start_time_ms = sessionStartTimeMs;
object2.session_end_time_ms = sessionEndTimeMs;
object2.impression_count = impressionCount;
object2.unique_impression_count = uniqueImpressionCount;
object2.icymi_session_id = icymiSessionId;
object2.feed_reload_count = feedReloadCount;
object2.feed_visible_items_changed_count = feedDwelledItemsChangedCount;
object2.feed_fetch_count = feedFetchCount;
object2.impression_item_types = impressionItemTypes;
object2.latest_dwell_start_time_ms = latestDwellStartTimeMs;
object2.previous_icymi_session_count = previousIcyMiSessionCount;
object2.ux_variation = uxVariation;
object2.interaction_count = interactionCount;
object2.dwelled_count = dwelledCount;
object2.unique_dwelled_count = uniqueDwelledCount;
Reflect.apply(track, defaultImport, [FEED_SESSION_COMPLETED, object2]);
}
function trackFeedItemDwell1s({impressionId, itemId, itemType, dwellStartTimeMs, icymiSessionId, triggerType, itemOccurenceCountInSession, itemFeedIndex, isInitiallyVisible, itemScore, itemChannelType, itemCardHeight, isDwelling, interactionActionTypes, interactionCount, uxVariation, sessionImpressionIndex}) { // fn#75132, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:4975, offset: 0x01da375e, size: 288 bytes, params: 2, frame: 18
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_ITEM_1S_DWELLED = AnalyticEvents.FEED_ITEM_1S_DWELLED;
const object2 = {};
object2.load_id = ICYMIStore.getLoadId();
object2.version = ICYMIStore.getVersion();
object2.impression_id = impressionId;
object2.item_id = itemId;
object2.item_type = itemType;
object2.dwell_start_time_ms = dwellStartTimeMs;
object2.icymi_session_id = icymiSessionId;
object2.trigger_type = triggerType;
object2.item_occurence_count_in_session = itemOccurenceCountInSession;
object2.item_feed_index = itemFeedIndex;
object2.is_initially_visible = isInitiallyVisible;
object2.item_score = itemScore;
object2.item_channel_type = itemChannelType ?? null;
object2.item_card_height = itemCardHeight;
object2.is_dwelling = isDwelling;
object2.interaction_action_types = interactionActionTypes;
object2.interaction_count = interactionCount;
object2.ux_variation = uxVariation;
object2.session_impression_index = sessionImpressionIndex;
Reflect.apply(track, defaultImport, [FEED_ITEM_1S_DWELLED, object2]);
}
function trackFeedItemDwelled({impressionId, dwellTimeMs, itemId, itemType, dwellStartTimeMs, dwellEndTimeMs, icymiSessionId, triggerType, itemOccurenceCountInSession, itemFeedIndex, isInitiallyVisible, itemScore, itemChannelType, itemCardHeight, uxVariation, interactionActionTypes, interactionCount, sessionImpressionIndex}) { // fn#75133, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:5693, offset: 0x01da387e, size: 299 bytes, params: 2, frame: 18
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_ITEM_DWELLED = AnalyticEvents.FEED_ITEM_DWELLED;
const object2 = {};
object2.load_id = ICYMIStore.getLoadId();
object2.version = ICYMIStore.getVersion();
object2.impression_id = impressionId;
object2.dwell_time_ms = dwellTimeMs;
object2.item_id = itemId;
object2.item_type = itemType;
object2.dwell_start_time_ms = dwellStartTimeMs;
object2.dwell_end_time_ms = dwellEndTimeMs;
object2.icymi_session_id = icymiSessionId;
object2.trigger_type = triggerType;
object2.item_occurence_count_in_session = itemOccurenceCountInSession;
object2.item_feed_index = itemFeedIndex;
object2.is_initially_visible = isInitiallyVisible;
object2.item_score = itemScore;
object2.item_channel_type = itemChannelType ?? null;
object2.item_card_height = itemCardHeight;
object2.ux_variation = uxVariation;
object2.interaction_action_types = interactionActionTypes;
object2.interaction_count = interactionCount;
object2.session_impression_index = sessionImpressionIndex;
Reflect.apply(track, defaultImport, [FEED_ITEM_DWELLED, object2]);
}
function trackFeedItemActioned(a0) { // fn#75134, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:6446, offset: 0x01da39a9, size: 233 bytes, params: 2, frame: 18
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_ITEM_ACTIONED = AnalyticEvents.FEED_ITEM_ACTIONED;
const object2 = {};
object2.load_id = ICYMIStore.getLoadId();
object2.icymi_session_id = a0.icymiSessionId;
object2.ux_variation = a0.uxVariation;
object2.version = ICYMIStore.getVersion();
object2.session_action_index = a0.sessionActionIndex;
object2.item_id = a0.itemId;
object2.item_type = a0.itemType;
const impressionId = a0.impressionId;
const value = null;
object2.impression_id = value != impressionId ? impressionId : value;
object2.action_gesture_type = a0.actionParameters.actionGestureType;
object2.action_target_element = a0.actionParameters.actionTargetElement;
object2.action_intent_type = a0.actionParameters.actionIntentType;
object2.action_destination_type = a0.actionParameters.actionDestinationType;
Reflect.apply(track, defaultImport, [FEED_ITEM_ACTIONED, object2]);
}
function trackFeedFilterActioned(a0) { // fn#75135, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:6986, offset: 0x01da3a92, size: 427 bytes, params: 2, frame: 19
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_FILTER_ACTIONED = AnalyticEvents.FEED_FILTER_ACTIONED;
const object2 = {};
object2.load_id = ICYMIStore.getLoadId();
object2.icymi_session_id = a0.icymiSessionId;
object2.ux_variation = a0.uxVariation;
object2.version = ICYMIStore.getVersion();
object2.session_action_index = a0.sessionActionIndex;
object2.filter_setting_context = a0.filterParameters.filterSettingContext;
object2.filter_target_type = a0.filterParameters.filterTargetType;
const targetGuildId = a0.filterParameters.targetGuildId;
const value = null;
object2.target_guild_id = value != targetGuildId ? targetGuildId : value;
const targetChannelId = a0.filterParameters.targetChannelId;
object2.target_channel_id = value != targetChannelId ? targetChannelId : value;
const previousTuneSetting = a0.filterParameters.previousTuneSetting;
object2.previous_tune_setting = value != previousTuneSetting ? previousTuneSetting : value;
const newTuneSetting = a0.filterParameters.newTuneSetting;
object2.new_tune_setting = value != newTuneSetting ? newTuneSetting : value;
const previousOutSetting = a0.filterParameters.previousOutSetting;
object2.previous_out_setting = value != previousOutSetting ? previousOutSetting : value;
const newOutSetting = a0.filterParameters.newOutSetting;
object2.new_out_setting = value != newOutSetting ? newOutSetting : value;
const itemId = a0.itemId;
object2.item_id = value != itemId ? itemId : value;
const itemType = a0.itemType;
object2.item_type = value != itemType ? itemType : value;
const impressionId = a0.impressionId;
object2.impression_id = value != impressionId ? impressionId : value;
Reflect.apply(track, defaultImport, [FEED_FILTER_ACTIONED, object2]);
}
function trackFeedPageActioned(a0) { // fn#75136, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:7884, offset: 0x01da3c3d, size: 188 bytes, params: 2, frame: 17
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FEED_PAGE_ACTIONED = AnalyticEvents.FEED_PAGE_ACTIONED;
const object2 = {};
object2.load_id = ICYMIStore.getLoadId();
object2.icymi_session_id = a0.icymiSessionId;
object2.ux_variation = a0.uxVariation;
object2.version = ICYMIStore.getVersion();
object2.session_action_index = a0.sessionActionIndex;
object2.action_gesture_type = a0.actionParameters.actionGestureType;
object2.action_target_element = a0.actionParameters.actionTargetElement;
object2.action_intent_type = a0.actionParameters.actionIntentType;
object2.action_destination_type = a0.actionParameters.actionDestinationType;
Reflect.apply(track, defaultImport, [FEED_PAGE_ACTIONED, object2]);
}
function _fun75118(a0) { // fn#75118, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:2328, offset: 0x01da3231, size: 55 bytes, params: 2, frame: 13
let binding = env0_0;
binding.push(a0.id);
binding = env0_2;
binding.push(dehydratedItemToType(a0));
}
function _fun75119(a0) { // fn#75119, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9775:2405, offset: 0x01da3268, size: 55 bytes, params: 2, frame: 13
let binding = env0_1;
binding.push(a0.id);
binding = env0_3;
binding.push(dehydratedItemToType(a0));
}