// Module ID: 7149 // Function ID: 7150 // Name: collectForumAnalyticsMetadata // Dependencies: [5207, 3914, 7150, 5843, 1372, 4621, 3912, 4620, 5816, 676, 1379, 1235, 7151, 1381, 7152, 11, 7153, 2] // Exports: collectForumPostAnalyticsMetadata, convertSortOrderToReadableString, getForumChannelSessionId, getForumPostAttachmentMimetypes, getForumPostDraftAppliedTagIds, getForumPostDraftNumAttachments, getNumActiveThreads // Module 7149 (collectForumAnalyticsMetadata) import handleThreadCreateOrUpdate from "handleThreadCreateOrUpdate"; import storeThread from "storeThread"; import updateFromGuild from "updateFromGuild"; import updateState from "updateState"; import ensureGuildLoaded from "ensureGuildLoaded"; import handleChanged from "handleChanged"; import { DraftType } from "handleChanged"; import getUncachedChannelPermissions from "getUncachedChannelPermissions"; import map from "map"; import handleLoadThreadsSuccess from "handleLoadThreadsSuccess"; import { Permissions } from "ME"; import { ChannelFlags } from "set"; import { ThreadSortOrderReadableForAnalytics as closure_15 } from "AbortCodes"; const require = arg1; function collectForumAnalyticsMetadata(sessionId) { sessionId = sessionId.sessionId; const channel = store.getChannel(sessionId.channelId); let tmp = null; if (null != channel) { tmp = null; if (channel.isForumLikeChannel()) { let tmp2 = null != channel.topic; if (tmp2) { tmp2 = channel.topic.trim().length > 0; const str = channel.topic; } const obj = { forum_channel_has_guidelines: null, forum_channel_default_emoji_reaction_id: null, forum_channel_default_emoji_reaction_name: null, forum_channel_available_tag_ids: null, forum_channel_tag_required: null, forum_channel_can_create_post: null, forum_channel_filter_tag_ids: null, forum_channel_sort_order: null, forum_channel_session_id: null, forum_channel_layout: null, forum_channel_default_sort_order: null, forum_channel_tag_setting: null, forum_channel_default_layout: null, forum_channel_is_moderator_report_channel: null }; obj[0] = tmp2; const defaultReactionEmoji = channel.defaultReactionEmoji; let emojiId; if (defaultReactionEmoji != null) { emojiId = defaultReactionEmoji.emojiId; } obj[1] = emojiId; const defaultReactionEmoji2 = channel.defaultReactionEmoji; let emojiName; if (defaultReactionEmoji2 != null) { emojiName = defaultReactionEmoji2.emojiName; } obj[2] = emojiName; const availableTags = channel.availableTags; let mapped; if (availableTags != null) { mapped = availableTags.map((id) => id.id); } if (mapped == null) { mapped = []; } obj[3] = mapped; obj[4] = channel.hasFlag(ChannelFlags.REQUIRE_TAG); obj[5] = getUncachedChannelPermissions.can(Permissions.SEND_MESSAGES, channel); obj[6] = importDefault(7152).getFilterTagIdsAnalytics(); const obj3 = importDefault(7152); obj[7] = importDefault(7152).getSortOrderAnalytics(channel.id); if (sessionId == null) { let tmp8Result = tmp8(7151); sessionId = tmp8Result.getForumChannelSessionId(channel.id); } obj[8] = sessionId; tmp8Result = tmp8(7152); obj[9] = tmp8Result.getLayoutAnalytics(channel.id); obj[10] = channel.defaultSortOrder; const obj4 = importDefault(7152); obj[11] = importDefault(7152).getTagSettingAnalytics(channel.id); obj[12] = channel.defaultForumLayout; obj[13] = channel.isModeratorReportChannel(); tmp = obj; const tmp8Result1 = importDefault(7152); } } return tmp; } const result = require("updateFromGuild").fileFinishedImporting("modules/forums/tracking/TrackingUtils.tsx"); export const getForumChannelSessionId = function getForumChannelSessionId(arg0) { return importDefault(7151).getForumChannelSessionId(arg0); }; export const convertSortOrderToReadableString = function convertSortOrderToReadableString(sortOrder) { if (require(1381) /* set */.ThreadSortOrder.CREATION_DATE === sortOrder) { return constants.CREATION_DATE; } else if (tmp(1381).ThreadSortOrder.LATEST_ACTIVITY === sortOrder) { return constants.LATEST_ACTIVITY; } else { const _Error = Error; const _HermesInternal = HermesInternal; const error = new Error("Unexpected sort order " + sortOrder); throw error; } tmp = require; }; export const getForumPostDraftNumAttachments = function getForumPostDraftNumAttachments(channelId) { return uploads.getUploads(channelId, DraftType.FirstThreadMessage).length; }; export const getForumPostDraftAppliedTagIds = function getForumPostDraftAppliedTagIds(channelId) { const channel = store.getChannel(channelId); if (null == channel) { return []; } else { const channel1 = obj.getChannel(channel.parent_id); if (channel1 != null) { const availableTags = channel1.availableTags; } if (null != channel1) { if (null != availableTags) { threadSettings = threadSettings.getThreadSettings(channelId); let appliedTags; if (threadSettings != null) { appliedTags = threadSettings.appliedTags; } if (appliedTags == null) { const _Set = Set; appliedTags = new Set(); } const _Set2 = Set; const set = new Set(availableTags.map((id) => id.id)); const _Array = Array; return Array.from(appliedTags).filter((arg0) => set.has(arg0)); } } return []; } obj = store; }; export const getNumActiveThreads = function getNumActiveThreads(guildId, channelId) { return Object.keys(threadsForParent.getThreadsForParent(guildId, channelId)).length; }; export const getForumPostAttachmentMimetypes = function getForumPostAttachmentMimetypes(arg0) { const message = store2.getMessage(arg0); let firstMessage = null; if (message.loaded) { firstMessage = message.firstMessage; } if (null == firstMessage) { let items = []; } else { const attachments = firstMessage.attachments; items = attachments.map((content_type) => { let str = content_type.content_type; if (str == null) { str = "unknown"; } return str; }); } return items; }; export { collectForumAnalyticsMetadata }; export const collectForumPostAnalyticsMetadata = function collectForumPostAnalyticsMetadata(channelId) { channelId = channelId.channelId; let obj = store; const channel = store.getChannel(channelId); if (null != channel) { if (channel.isForumPost()) { const channel1 = obj.getChannel(channel.parent_id); let tmp = null; if (null != channel1) { tmp = null; if (channel1.isForumLikeChannel()) { obj = {}; obj = { channelId: null, sessionId: null }; obj[0] = channel1.id; obj[1] = channelId.sessionId; const merged = Object.assign(collectForumAnalyticsMetadata(obj)); obj.thread_approximate_member_count = memberCount.getMemberCount(channelId); obj.thread_approximate_message_count = count.getCount(channelId); const threadMetadata = channel.threadMetadata; let archived; if (threadMetadata != null) { archived = threadMetadata.archived; } obj.thread_archived = true === archived; const threadMetadata2 = channel.threadMetadata; let flag2; if (threadMetadata2 != null) { flag2 = threadMetadata2.locked; } if (flag2 == null) { flag2 = false; } obj.thread_locked = flag2; const threadMetadata3 = channel.threadMetadata; let num; if (threadMetadata3 != null) { num = threadMetadata3.autoArchiveDuration; } if (num == null) { num = 0; } obj.thread_auto_archive_duration_minutes = num; obj.thread_approximate_creation_date = importDefault(11).extractTimestamp(channelId); obj.forum_post_id = channel.id; const obj6 = importDefault(11); obj.forum_post_first_message_id = importDefault(11).castChannelIdAsMessageId(channel.id); const message = store2.getMessage(channel.id); let firstMessage = null; if (message.loaded) { firstMessage = message.firstMessage; } let num3 = 0; if (null != firstMessage) { const reactions = firstMessage.reactions; num3 = reactions.reduce((arg0, count) => arg0 + count.count, 0); } obj.forum_post_num_reactions = num3; const message1 = obj8.getMessage(channel.id); let firstMessage1 = null; if (message1.loaded) { firstMessage1 = message1.firstMessage; } let num4 = 0; if (null != firstMessage1) { num4 = firstMessage1.reactions.length; } obj.forum_post_num_unique_reactions = num4; let set; const channel2 = obj.getChannel(channel.id); if (null == channel2) { let items = []; } else { const channel3 = obj.getChannel(channel2.parent_id); if (channel3 != null) { const availableTags = channel3.availableTags; } if (null != channel3) { if (null != availableTags) { const _Set = Set; set = new Set(availableTags.map((id) => id.id)); const appliedTags = channel2.appliedTags; items = undefined; if (appliedTags != null) { items = appliedTags.filter((arg0) => set.has(arg0)); } if (items == null) { items = []; } } } items = []; } obj.forum_post_applied_tag_ids = items; obj.forum_post_is_pinned = channel.hasFlag(ChannelFlags.PINNED); let tmp8Result = tmp8(7153); const readStateSnapshotAnalytics = tmp8Result.getReadStateSnapshotAnalytics(channel.id); let isNew; if (readStateSnapshotAnalytics != null) { isNew = readStateSnapshotAnalytics.isNew; } obj.forum_post_is_new = isNew; tmp8Result = tmp8(7153); const readStateSnapshotAnalytics1 = tmp8Result.getReadStateSnapshotAnalytics(channel.id); let hasUnreads; if (readStateSnapshotAnalytics1 != null) { hasUnreads = readStateSnapshotAnalytics1.hasUnreads; } obj.forum_post_is_unread = hasUnreads; obj.forum_post_is_following = storeThread.hasJoined(channel.id); const message2 = obj8.getMessage(channel.id); let firstMessage2 = null; if (message2.loaded) { firstMessage2 = message2.firstMessage; } if (null == firstMessage2) { let items1 = []; } else { const attachments = firstMessage2.attachments; items1 = attachments.map((content_type) => { let str = content_type.content_type; if (str == null) { str = "unknown"; } return str; }); } obj.forum_post_attachment_mimetypes = items1; const obj7 = importDefault(11); } } return tmp; } } return null; };