/* Metro module 6946; source: utils/GuildDiscoveryUtils.tsx; dependencies: [5, 3785, 4111, 1867, 661, 1230, 6947, 6837, 6593, 6912, 6914, 683, 507, 1468, 2] */ import Module00005 from '../by-id/module-00005.js'; /* Metro dependency 5 */ import AnalyticsUtils from './AnalyticsUtils.tsx'; /* Metro dependency 683 */ import GuildStore from '../stores/GuildStore.tsx'; /* Metro dependency 1867 */ import LurkingStore from '../modules/lurker_mode/LurkingStore.tsx'; /* Metro dependency 3785 */ import GuildMemberCountStore from '../stores/GuildMemberCountStore.tsx'; /* Metro dependency 4111 */ import * as FileImportTrackerModule from '../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as ConstantsModule from '../Constants.tsx'; /* Metro dependency 661 */ function _fun55237(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#55237, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:6, offset: 0x01379581, size: 502 bytes, params: 8, frame: 20 const env0_0 = require; const makeDiscoverableGuild2 = makeDiscoverableGuild; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); (FileImportTrackerModule).fileFinishedImporting('utils/GuildDiscoveryUtils.tsx'); exports.AnalyticsContexts = {SEARCH: 'Search', RECOMMENDED: 'Recommended', POPULAR: 'Popular', RECOMMENDED_E3: 'Recommended - E3', HEADER: 'Header', GLOBAL_DISCOVERY: 'Global Discovery', FORWARD_BREADCRUMB: 'Forward Breadcrumb'}; exports.IOS_MINIMUM_MEMBER_COUNT = '>1000'; exports.MINIMUM_MEMBER_COUNT = '>200'; exports.startLurking = function() { return _startLurking.apply(this, arguments); }; exports.makeDiscoverableGuild = makeDiscoverableGuild2; exports.trackDiscoveryExited = trackDiscoveryExited; exports.trackSearchClosed = function(a0) { var defaultImport = importDefault(dependencyMap[11]); var SEARCH_CLOSED = AnalyticEvents.SEARCH_CLOSED; defaultImport.track(SEARCH_CLOSED, {load_id: a0}); }; exports.trackSearchStarted = trackSearchStarted; exports.trackGuildDiscoverySearchStart = function({withCounts, offset}) { var defaultImport = importDefault(dependencyMap[11]); var GUILD_DISCOVERY_SEARCH_START = AnalyticEvents.GUILD_DISCOVERY_SEARCH_START; defaultImport.track(GUILD_DISCOVERY_SEARCH_START, {with_counts: withCounts, offset: offset}); }; exports.trackSearchFailed = function({categoryId, error, willRequestRetry, isRequestRetry}) { var defaultImport = importDefault(dependencyMap[11]); var GUILD_DISCOVERY_SEARCH_FAILED = AnalyticEvents.GUILD_DISCOVERY_SEARCH_FAILED; defaultImport.track(GUILD_DISCOVERY_SEARCH_FAILED, {category_id: categoryId, request_status: error.status, request_error_code: error.code, will_request_retry: willRequestRetry, is_request_retry: isRequestRetry}); }; exports.trackGuildDiscoveryGetFeaturedGuildsFailed = function({categoryId}) { var defaultImport = importDefault(dependencyMap[11]); var GUILD_DISCOVERY_GET_FEATURED_GUILDS_FAILED = AnalyticEvents.GUILD_DISCOVERY_GET_FEATURED_GUILDS_FAILED; defaultImport.track(GUILD_DISCOVERY_GET_FEATURED_GUILDS_FAILED, {category_id: categoryId}); }; exports.trackSearchResultsViewed = trackSearchResultsViewed; exports.trackGuildJoinClicked = function(a0) { var value2 = LurkingStore.getLoadId(a0); var defaultImport = importDefault(dependencyMap[11]); var GUILD_DISCOVERY_GUILD_JOIN_CLICKED = AnalyticEvents.GUILD_DISCOVERY_GUILD_JOIN_CLICKED; var object = {guild_id: a0, load_id: value2}; object.guild_size = GuildMemberCountStore.getMemberCount(a0); defaultImport.track(GUILD_DISCOVERY_GUILD_JOIN_CLICKED, object); }; exports.getDiscoverableGuild = function() { return _getDiscoverableGuild.apply(this, arguments); }; exports.fetchPublicDiscoveryGuild = function() { return _fetchPublicDiscoveryGuild.apply(this, arguments); }; function _startLurking() { // fn#55238, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:436, offset: 0x01379777, size: 48 bytes, params: 1, frame: 14 return Module00005(_fun55240).apply(this, arguments); async function _fun55240(a0, a1) { // fn#55240, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:485, offset: 0x013797b9, size: 793 bytes, params: 3, frame: 31 var r16; var value9; var value11; var transitionToGuildSync; var object; var object4; var value16; var object5; let value = a2; if (false) { return undefined; } const value4 = undefined; const r6 = value !== value4 ? value : {}; await value4; if (false) { return undefined; } const channelId = r6.channelId; const onSuccess = r6.onSuccess; const joinSource = r6.joinSource; const loadId = r6.loadId; const shouldNavigate = r6.shouldNavigate; const r9 = value4 === shouldNavigate || shouldNavigate; value = environment.__proto__.__proto__; let binding = env2_0; const history = binding(env2_2[5]).getHistory(); const guild = env2_6.getGuild(a0); const object6 = {sourceLocationStack: a3}; object6.state = {analyticsSource: a1}; if (guild == null) { if (guild == null) { r16 = a3 == null ? value4 : a3[a3.length - 1]; r16 = r16 ?? (a1 == null ? value4 : a1.page); binding = env2_0; value9 = binding(env2_2[9]); if (value9.getMobileLurkerServerPreview('startLurking').enabled) { env2_0(env2_2[10]).trackLurkStarted(a0, joinSource, r16); } binding = env2_1; value11 = binding(env2_2[8]); await value11.joinGuild(a0, {lurker: true, source: joinSource, loadId: loadId, lurkLocation: r16}); if (false) { return undefined; } if (r9) { value = env2_1(env2_2[8]); transitionToGuildSync = value.transitionToGuildSync; object = {}; copyDataProperties(object, object6, undefined); object['welcomeModalChannelId'] = channelId; object['navigationReplace'] = channelId != null; object['openChannel'] = channelId != null; object['search'] = history.location.search; await Reflect.apply(transitionToGuildSync, value, [a0, object, channelId, r6.messageId]); value = undefined; if (false) { return value; } if (onSuccess != null) { onSuccess(); } return value4; } if (onSuccess != null) { onSuccess(); } return value4; } binding = env2_4; if (binding.isLurking(a0)) { if (r9) { value = env2_1(env2_2[8]); transitionToGuildSync = value.transitionToGuildSync; object4 = {}; copyDataProperties(object4, object6, undefined); object4['welcomeModalChannelId'] = channelId; object4['navigationReplace'] = channelId != null; object4['openChannel'] = channelId != null; object4['search'] = history.location.search; await Reflect.apply(transitionToGuildSync, value, [a0, object4, channelId, r6.messageId]); value = undefined; if (false) { return value; } if (onSuccess != null) { onSuccess(); } return value4; } if (onSuccess != null) { onSuccess(); } return value4; } r16 = a3 == null ? value4 : a3[a3.length - 1]; r16 = r16 ?? (a1 == null ? value4 : a1.page); binding = env2_0; value9 = binding(env2_2[9]); if (value9.getMobileLurkerServerPreview('startLurking').enabled) { env2_0(env2_2[10]).trackLurkStarted(a0, joinSource, r16); } binding = env2_1; value11 = binding(env2_2[8]); } else { if (guild.joinedAt != null) { if (r9) { if (channelId == null) { env2_0(env2_2[6]).transitionToGuild(a0, object6); } else { binding = env2_1; value16 = binding(env2_2[7]); binding = env2_10; value = binding.CHANNEL(a0, channelId, r6.messageId); object5 = {}; copyDataProperties(object5, object6, undefined); object5['navigationReplace'] = true; object5['openChannel'] = true; value16(value, object5); } } if (onSuccess != null) { onSuccess(); } return value4; } if (guild == null) { r16 = a3 == null ? value4 : a3[a3.length - 1]; r16 = r16 ?? (a1 == null ? value4 : a1.page); binding = env2_0; value9 = binding(env2_2[9]); if (value9.getMobileLurkerServerPreview('startLurking').enabled) { env2_0(env2_2[10]).trackLurkStarted(a0, joinSource, r16); } binding = env2_1; value11 = binding(env2_2[8]); await value11.joinGuild(a0, {lurker: true, source: joinSource, loadId: loadId, lurkLocation: r16}); if (false) { return undefined; } if (r9) { value = env2_1(env2_2[8]); transitionToGuildSync = value.transitionToGuildSync; object = {}; copyDataProperties(object, object6, undefined); object['welcomeModalChannelId'] = channelId; object['navigationReplace'] = channelId != null; object['openChannel'] = channelId != null; object['search'] = history.location.search; await Reflect.apply(transitionToGuildSync, value, [a0, object, channelId, r6.messageId]); value = undefined; if (false) { return value; } if (onSuccess != null) { onSuccess(); } return value4; } if (onSuccess != null) { onSuccess(); } return value4; } binding = env2_4; if (binding.isLurking(a0)) { if (r9) { value = env2_1(env2_2[8]); transitionToGuildSync = value.transitionToGuildSync; object4 = {}; copyDataProperties(object4, object6, undefined); object4['welcomeModalChannelId'] = channelId; object4['navigationReplace'] = channelId != null; object4['openChannel'] = channelId != null; object4['search'] = history.location.search; await Reflect.apply(transitionToGuildSync, value, [a0, object4, channelId, r6.messageId]); value = undefined; if (false) { return value; } if (onSuccess != null) { onSuccess(); } return value4; } if (onSuccess != null) { onSuccess(); } return value4; } r16 = a3 == null ? value4 : a3[a3.length - 1]; r16 = r16 ?? (a1 == null ? value4 : a1.page); value9 = env2_0(env2_2[9]); if (value9.getMobileLurkerServerPreview('startLurking').enabled) { env2_0(env2_2[10]).trackLurkStarted(a0, joinSource, r16); } value11 = env2_1(env2_2[8]); } await value11.joinGuild(a0, {lurker: true, source: joinSource, loadId: loadId, lurkLocation: r16}); if (false) { return undefined; } if (r9) { value = env2_1(env2_2[8]); transitionToGuildSync = value.transitionToGuildSync; object = {}; copyDataProperties(object, object6, undefined); object['welcomeModalChannelId'] = channelId; object['navigationReplace'] = channelId != null; object['openChannel'] = channelId != null; object['search'] = history.location.search; await Reflect.apply(transitionToGuildSync, value, [a0, object, channelId, r6.messageId]); value = undefined; if (false) { return value; } } if (onSuccess != null) { onSuccess(); } return value4; } } function _getDiscoverableGuild() { // fn#55242, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:1954, offset: 0x01379bac, size: 48 bytes, params: 1, frame: 14 return Module00005(_fun55244).apply(this, arguments); function* _fun55244(a0) { // fn#55244, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:2019, offset: 0x01379be5, size: 222 bytes, params: 2, frame: 20 var r4; var r2; var binding; var binding2; var property; var value4; var HTTP; var get; var object; var GUILD_DISCOVERY; var value5; var stringify; var object2; var value6; var value7; var value8; var value9; var body; var value10; var guilds; var value11; var value12; var error; if (false) { return undefined; } value = undefined; try { binding = env2_0; } catch (error) { return null; } try { binding2 = env2_2; } catch (error) { return null; } try { property = binding2[12]; } catch (error) { return null; } try { value4 = binding(property); } catch (error) { return null; } try { HTTP = value4.HTTP; } catch (error) { return null; } try { get = HTTP.get; } catch (error) { return null; } try { object = {}; } catch (error) { return null; } try { binding = env2_9; } catch (error) { return null; } try { GUILD_DISCOVERY = binding.GUILD_DISCOVERY; } catch (error) { return null; } try { object.url = GUILD_DISCOVERY; } catch (error) { return null; } try { binding = env2_1; } catch (error) { return null; } try { property = binding2[13]; } catch (error) { return null; } try { value5 = binding(property); } catch (error) { return null; } try { stringify = value5.stringify; } catch (error) { return null; } try { object2 = {}; } catch (error) { return null; } try { object2.guild_ids = a0; } catch (error) { return null; } try { value6 = Reflect.apply(stringify, value5, [object2]); } catch (error) { return null; } try { object.query = value6; } catch (error) { return null; } try { object.oldFormErrors = true; } catch (error) { return null; } try { object.rejectWithError = true; } catch (error) { return null; } try { value7 = Reflect.apply(get, HTTP, [object]); } catch (error) { return null; } yield value7; try { value8 = undefined; value9 = false; } catch (error) { return null; } if (value9) { return value8; } try { body = value8.body; } catch (error) { return null; } try { value10 = body == null; } catch (error) { return null; } if (value10) { r4 = value; } else { try { guilds = body.guilds; } catch (error) { return null; } try { value11 = guilds == null; } catch (error) { return null; } if (value11) { r4 = value; } else { try { property = guilds[0]; } catch (error) { return null; } r4 = property; } } try { value12 = r4 == null; } catch (error) { return null; } if (value12) { r2 = r4; } else { try { binding = env2_12; } catch (error) { return null; } try { value = binding(r4); } catch (error) { return null; } r2 = value; } return r2; } } function _fetchPublicDiscoveryGuild() { // fn#55245, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:2308, offset: 0x01379cc3, size: 48 bytes, params: 1, frame: 14 return Module00005(_fun55247).apply(this, arguments); function* _fun55247(a0) { // fn#55247, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:2383, offset: 0x01379cfc, size: 216 bytes, params: 2, frame: 18 var guild; var slug; var r2; var binding; var binding2; var property; var value4; var HTTP; var get; var object; var GUILD_DISCOVERY_SLUG; var String; var value5; var value6; var value7; var value8; var value9; var body; var value11; var value12; var value13; var error; if (false) { return undefined; } value = undefined; try { binding = env2_0; } catch (error) { return null; } try { binding2 = env2_2; } catch (error) { return null; } try { property = binding2[12]; } catch (error) { return null; } try { value4 = binding(property); } catch (error) { return null; } try { HTTP = value4.HTTP; } catch (error) { return null; } try { get = HTTP.get; } catch (error) { return null; } try { object = {'url': null, 'oldFormErrors': true, 'rejectWithError': true}; } catch (error) { return null; } try { binding = env2_9; } catch (error) { return null; } try { GUILD_DISCOVERY_SLUG = binding.GUILD_DISCOVERY_SLUG; } catch (error) { return null; } try { String = global.String; } catch (error) { return null; } try { value5 = String(a0); } catch (error) { return null; } try { value6 = Reflect.apply(GUILD_DISCOVERY_SLUG, binding, [value5]); } catch (error) { return null; } try { object.url = value6; } catch (error) { return null; } try { value7 = Reflect.apply(get, HTTP, [object]); } catch (error) { return null; } yield value7; try { value8 = undefined; value9 = false; } catch (error) { return null; } if (value9) { return value8; } try { body = value8.body; } catch (error) { return null; } const value10 = null; try { value11 = value10 == body; } catch (error) { return null; } if (value11) { guild = value; try { value12 = value10 == guild; } catch (error) { return null; } if (value12) { return value10; } try { value13 = value10 == body; } catch (error) { return null; } if (value13) { slug = value; try { value = value10 == slug; } catch (error) { return null; } if (value) { return value10; } try { object = {}; } catch (error) { return null; } try { guild = body.guild; } catch (error) { return null; } try { object.guild = guild; } catch (error) { return null; } try { slug = body.slug; } catch (error) { return null; } try { object.slug = slug; r2 = object; } catch (error) { return null; } return r2; } try { slug = body.slug; } catch (error) { return null; } try { value = value10 == slug; } catch (error) { return null; } if (value) { return value10; } try { object = {}; } catch (error) { return null; } try { guild = body.guild; } catch (error) { return null; } try { object.guild = guild; } catch (error) { return null; } try { slug = body.slug; } catch (error) { return null; } try { object.slug = slug; r2 = object; } catch (error) { return null; } } else { try { guild = body.guild; } catch (error) { return null; } try { value12 = value10 == guild; } catch (error) { return null; } if (value12) { return value10; } try { value13 = value10 == body; } catch (error) { return null; } if (value13) { slug = value; try { value = value10 == slug; } catch (error) { return null; } if (value) { return value10; } try { object = {}; } catch (error) { return null; } try { guild = body.guild; } catch (error) { return null; } try { object.guild = guild; } catch (error) { return null; } try { slug = body.slug; } catch (error) { return null; } try { object.slug = slug; r2 = object; } catch (error) { return null; } return r2; } try { slug = body.slug; } catch (error) { return null; } try { value = value10 == slug; } catch (error) { return null; } if (value) { return value10; } try { object = {}; } catch (error) { return null; } try { guild = body.guild; } catch (error) { return null; } try { object.guild = guild; } catch (error) { return null; } try { slug = body.slug; } catch (error) { return null; } try { object.slug = slug; r2 = object; } catch (error) { return null; } } return r2; } } function trackDiscoveryExited(a0, a1) { // fn#55249, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:2973, offset: 0x01379dd4, size: 84 bytes, params: 3, frame: 16 const value = a2; const r5 = value !== undefined ? value : null; const defaultImport = AnalyticsUtils; const track = defaultImport.track; const GUILD_DISCOVERY_EXITED = AnalyticEvents.GUILD_DISCOVERY_EXITED; Reflect.apply(track, defaultImport, [GUILD_DISCOVERY_EXITED, {load_id: a0, guild_ids_viewed: a1, recommendations_source: r5}]); } function trackSearchStarted(a0, a1) { // fn#55251, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:3231, offset: 0x01379e62, size: 99 bytes, params: 3, frame: 16 const value = a2; const r5 = value !== undefined ? value : {}; const defaultImport = AnalyticsUtils; const track = defaultImport.track; const SEARCH_STARTED = AnalyticEvents.SEARCH_STARTED; const GUILD_DISCOVERY = SearchTypes.GUILD_DISCOVERY; Reflect.apply(track, defaultImport, [SEARCH_STARTED, {search_type: GUILD_DISCOVERY, load_id: a0, location: r5.location, category_id: a1}]); } function trackSearchResultsViewed({loadId, searchId, query, guildResults, analyticsContext, categoryId, isTagSearch}) { // fn#55255, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:4034, offset: 0x01379fcb, size: 202 bytes, params: 2, frame: 23 const defaultImport = AnalyticsUtils; const track = defaultImport.track; const SEARCH_RESULT_VIEWED = AnalyticEvents.SEARCH_RESULT_VIEWED; const object = {}; object.search_type = isTagSearch ? SearchTypes.GUILD_DISCOVERY_TAG : SearchTypes.GUILD_DISCOVERY; object.load_id = loadId; object.search_id = searchId; const value = guildResults !== undefined; object.total_results = value ? guildResults.length : null; object.guild_ids = value ? guildResults.map(function(a0) { return a0.id; }) : null; object.query = query; object.location = analyticsContext.location; object.category_id = categoryId; Reflect.apply(track, defaultImport, [SEARCH_RESULT_VIEWED, object]); } } function makeDiscoverableGuild({id, name, description, splash, banner, icon, features, approximate_presence_count, approximate_member_count, premium_subscription_count, preferred_locale, discovery_splash, emojis, emoji_count, stickers, sticker_count, keywords}) { // fn#55241, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7124:1477, offset: 0x01379ad2, size: 218 bytes, params: 2, frame: 13 const object = {}; object.id = id; object.name = name; object.description = description; object.splash = splash; object.banner = banner; object.icon = icon; const Set = global.Set; object.features = new Set(features); object.presenceCount = approximate_presence_count; object.memberCount = approximate_member_count; object.premiumSubscriptionCount = premium_subscription_count; object.preferredLocale = preferred_locale; object.discoverySplash = discovery_splash; object.emojis = emojis; object.emojiCount = emoji_count; object.stickers = stickers; object.stickerCount = sticker_count; object.keywords = keywords; return object; } global.__d(_fun55237, 6946, [5, 3785, 4111, 1867, 661, 1230, 6947, 6837, 6593, 6912, 6914, 683, 507, 1468, 2]) /* metro module 6946, dependencies: [5, 3785, 4111, 1867, 661, 1230, 6947, 6837, 6593, 6912, 6914, 683, 507, 1468, 2] */;