// Metro module 5567 (f5568). import Record from "../../../lib/Record"; import { Endpoints, GuildFeatures } from "../../../Constants"; import { HTTP } from "../../../_bundle/sendRequest"; import AvatarUtils from "../../../utils/AvatarUtils"; import { toSetInplace } from "../../../_bundle/Module1414"; import { isGuildRecord } from "../../../utils/GuildRecordUtils"; import { $callWithNewTarget } from "../../../_hermes/prelude"; let c3428_6; const getEmojiSourceData = async function getEmojiSourceData(c25496_0) { let r87; let c25496_3 = 0; let c29522_1, c29522_0; L18: { try { c29522_1 = void 0; c29522_0 = null; c25496_3 = 1; c29522_1 = (await HTTP.get({ url: Endpoints.EMOJI_SOURCE_DATA(c25496_0), oldFormErrors: true, timeout: 5000, rejectWithError: true })).body; if (c29522_1?.type === c3428_6.GUILD) { c29522_0 = { guild: ExpressionSourceGuildRecord.createFromServer(c29522_1.guild), type: c29522_1.type }; } else if (c29522_1?.type === c3428_6.APPLICATION) { c29522_0 = { application: ExpressionSourceApplicationRecord.createFromServer(c29522_1.application), type: c29522_1.type }; } c25496_3 = 0; r87 = c29522_0; } catch ($e) { let r25 = $e; if (c25496_3 !== 0) { while (true) { try { c25496_3 = 0; r87 = c29522_0; break L18; } catch ($e) { r25 = $e; if (c25496_3 === 0) { break; } } } } throw r25; } } return r87; }; c3428_6 = { GUILD: "GUILD", APPLICATION: "APPLICATION" }; class ExpressionSourceGuildRecord extends Record { constructor(a0) { super(); this.id = a0.id; this.name = a0.name; this.icon = a0.icon; this.description = a0.description; this.features = a0.features; this.premiumTier = a0.premiumTier; this.premiumSubscriberCount = a0.premiumSubscriberCount; this.presenceCount = a0.presenceCount; this.memberCount = a0.memberCount; this.emojis = a0.emojis; } getIconURL(a0, canAnimate = false) { return AvatarUtils.getGuildIconURL({ id: this.id, size: a0, icon: this.icon, canAnimate }); } getIconSource(size, r5 = false) { return AvatarUtils.getAnimatableSourceWithFallback(r5, (a0) => AvatarUtils.getGuildIconSource({ id: this.id, size, icon: this.icon, canAnimate: a0 })); } hasFeature(a0) { return this.features.has(a0); } isDiscoverable() { return this.hasFeature(GuildFeatures.DISCOVERABLE); } static async getGuildFromEmojiId(c14928_0) { let c25497_1; c25497_1 = void 0; let c29523_0 = await getEmojiSourceData(c14928_0); return c29523_0 != null ? c29523_0?.type === c3428_6.GUILD ? c29523_0.guild : null : null; } static _mapCommon(a0) { return { id: a0.id, name: a0.name, icon: a0.icon, description: a0.description, features: toSetInplace(a0.features) }; } static createFromGuildRecord(a0) { const r2 = { ...ExpressionSourceGuildRecord._mapCommon(a0), premiumTier: a0.premiumTier, premiumSubscriberCount: a0.premiumSubscriberCount, presenceCount: null, memberCount: null, emojis: null }; const prototypeOf = Object.getPrototypeOf(ExpressionSourceGuildRecord); const r17 = Object.create(ExpressionSourceGuildRecord.prototype); const r18 = $callWithNewTarget(prototypeOf, r17, ExpressionSourceGuildRecord); const r19 = r18 instanceof Object ? r18 : r17; r19.id = r2.id; r19.name = r2.name; r19.icon = r2.icon; r19.description = r2.description; r19.features = r2.features; r19.premiumTier = r2.premiumTier; r19.premiumSubscriberCount = r2.premiumSubscriberCount; r19.presenceCount = r2.presenceCount; r19.memberCount = r2.memberCount; r19.emojis = r2.emojis; return r19; } static createFromDiscoverableGuild(a0) { const r2 = { ...ExpressionSourceGuildRecord._mapCommon(a0), premiumTier: null, premiumSubscriberCount: a0.premiumSubscriptionCount, presenceCount: a0.presenceCount, memberCount: a0.memberCount, emojis: a0.emojis }; const prototypeOf = Object.getPrototypeOf(ExpressionSourceGuildRecord); const r19 = Object.create(ExpressionSourceGuildRecord.prototype); const r20 = $callWithNewTarget(prototypeOf, r19, ExpressionSourceGuildRecord); const r21 = r20 instanceof Object ? r20 : r19; r21.id = r2.id; r21.name = r2.name; r21.icon = r2.icon; r21.description = r2.description; r21.features = r2.features; r21.premiumTier = r2.premiumTier; r21.premiumSubscriberCount = r2.premiumSubscriberCount; r21.presenceCount = r2.presenceCount; r21.memberCount = r2.memberCount; r21.emojis = r2.emojis; return r21; } static createFromServer(a0) { const r1 = { ...ExpressionSourceGuildRecord._mapCommon(a0), premiumTier: a0.premium_tier, premiumSubscriberCount: a0.premium_subscription_count, presenceCount: a0.approximate_presence_count, memberCount: a0.approximate_member_count, emojis: a0.emojis }; const prototypeOf = Object.getPrototypeOf(ExpressionSourceGuildRecord); const r19 = Object.create(ExpressionSourceGuildRecord.prototype); const r20 = $callWithNewTarget(prototypeOf, r19, ExpressionSourceGuildRecord); const r21 = r20 instanceof Object ? r20 : r19; r21.id = r1.id; r21.name = r1.name; r21.icon = r1.icon; r21.description = r1.description; r21.features = r1.features; r21.premiumTier = r1.premiumTier; r21.premiumSubscriberCount = r1.premiumSubscriberCount; r21.presenceCount = r1.presenceCount; r21.memberCount = r1.memberCount; r21.emojis = r1.emojis; return r21; } static createFromGuildType(a0) { return a0 instanceof ExpressionSourceGuildRecord ? a0 : isGuildRecord(a0) ? ExpressionSourceGuildRecord.createFromGuildRecord(a0) : ExpressionSourceGuildRecord.createFromDiscoverableGuild(a0); } } class ExpressionSourceApplicationRecord extends Record { constructor(a0) { super(); this.id = a0.id; this.name = a0.name; } static createFromServer({ id, name }) { const prototypeOf = Object.getPrototypeOf(ExpressionSourceApplicationRecord); const r11 = Object.create(ExpressionSourceApplicationRecord.prototype); const r12 = $callWithNewTarget(prototypeOf, r11, ExpressionSourceApplicationRecord); const r13 = r12 instanceof Object ? r12 : r11; r13.id = id; r13.name = name; return r13; } } export { c3428_6 as EmojiSourceDataTypes }; export { getEmojiSourceData }; export { ExpressionSourceGuildRecord }; export { ExpressionSourceApplicationRecord };