From 3e373fb91b93974e213b392a93ee56e1ae41edb5 Mon Sep 17 00:00:00 2001 From: Cynthia Foxwell Date: Fri, 27 Jun 2025 11:49:34 -0600 Subject: [PATCH] lookupinvite: copypaste updated profile support --- src/modules/utility/lookupinvite.js | 132 +++++++++++----------------- 1 file changed, 53 insertions(+), 79 deletions(-) diff --git a/src/modules/utility/lookupinvite.js b/src/modules/utility/lookupinvite.js index e8a268c..b69b6a0 100644 --- a/src/modules/utility/lookupinvite.js +++ b/src/modules/utility/lookupinvite.js @@ -218,123 +218,97 @@ lookupinvite.callback = async function (msg, line) { return `Unhandled invite type: \`${invite.type}\``; } - const clan = invite.profile; + const profile = invite.profile; let clanEmbed; - if (clan) { + if (profile) { const images = []; - const game_ids = clan.game_ids ?? clan.game_application_ids ?? []; + const game_ids = profile.game_ids ?? profile.game_application_ids ?? []; const games = await Promise.all( game_ids - .sort((a, b) => (clan.game_activity[b]?.activity_score ?? 0) - (clan.game_activity[a]?.activity_score ?? 0)) + .sort( + (a, b) => (profile.game_activity[b]?.activity_score ?? 0) - (profile.game_activity[a]?.activity_score ?? 0) + ) .map(async (id) => { let game = Games.find((x) => x.id == id); if (!game) { game = await hf.bot.requestHandler.request("GET", APIEndpoints.APPLICATION_RPC(id), false); } - let out = `${game.name} (\`${id}\`)`; - - if (clan.game_activity[id]?.activity_level > 1) { - out = `:fire: ${out}`; - } else { - out = `${Icons.blank} ${out}`; - } - - return out; + return `${game.name}${ + profile.game_activity[id]?.activity_level > 1 ? " \ud83d\udd25" : "" + }\n-# \u200b\u3000${id}`; }) ); - if (clan.wildcard_descriptors) clan.wildcard_descriptors = clan.wildcard_descriptors.filter((x) => x != ""); + if (profile.wildcard_descriptors) + profile.wildcard_descriptors = profile.wildcard_descriptors.filter((x) => x != ""); - const termLines = []; - let currentTerm = ""; - if (clan.search_terms) { - for (const index in clan.search_terms) { - const term = clan.search_terms[index]; - const formattedTerm = `\`\u2004${term.replaceAll(" ", "\u2005")}\u2004\``; - if (currentTerm.length + 1 + formattedTerm.length > 56) { - termLines.push(currentTerm); - currentTerm = formattedTerm; - } else { - currentTerm += "\u2004" + formattedTerm; - } - if (index == clan.search_terms.length - 1) termLines.push(currentTerm); - } - } else if (clan.traits) { - for (const index in clan.traits) { - const term = clan.traits[index]; - const formattedTerm = `${term.emoji_name ? `:${term.emoji_name}:` : ""}\`\u2004${term.label.replaceAll( - " ", - "\u2005" - )}\u2004\``; - if (currentTerm.length + 1 + formattedTerm.length > 56) { - termLines.push(currentTerm); - currentTerm = formattedTerm; - } else { - currentTerm += "\u2004" + formattedTerm; - } - if (index == clan.traits.length - 1) termLines.push(currentTerm); - } - } - - let gameLines = ""; - let gameLines2 = ""; - for (const line of games) { - if (gameLines.length + line.length + 1 <= 1024) { - gameLines += line + "\n"; - } else { - gameLines2 += line + "\n"; - } + let traits = ""; + if (profile.search_terms) { + traits = profile.search_terms.map((term) => `[\u2005${term}\u2005]`).join(" "); + } else if (profile.traits) { + traits = profile.traits + .map((term) => `[\u2005${term.emoji_name ? `:${term.emoji_name}: ` : ""}${term.label}\u2005]`) + .join(" "); } + const gamesLeft = games.slice(0, Math.ceil(games.length / 2)).join("\n"); + const gamesRight = games.slice(Math.ceil(games.length / 2), games.length).join("\n"); clanEmbed = { - color: clan.brand_color_primary ? parseInt(clan.brand_color_primary.replace("#", "0x")) : 0, + color: profile.brand_color_primary ? parseInt(profile.brand_color_primary.replace("#", "0x")) : 0, author: { - name: clan.tag, + name: profile.tag, }, description: - clan.playstyle || clan.wildcard_descriptors - ? `-# :video_game:${ClanPlaystyle[clan.playstyle] ?? "Unknown"}${ - clan.wildcard_descriptors.length > 0 ? ` \u2022 **${clan.wildcard_descriptors.join(", ")}**` : "" - }\n\n${clan.description ?? "*No description*"}` - : clan.description ?? "*No description*", + profile.playstyle || profile.wildcard_descriptors + ? `-# :video_game:${ClanPlaystyle[profile.playstyle] ?? "Unknown"}${ + profile.wildcard_descriptors.length > 0 ? ` \u2022 **${profile.wildcard_descriptors.join(", ")}**` : "" + }\n\n${profile.description ?? "*No description*"}` + : profile.description ?? "*No description*", fields: [ - termLines.length > 0 && { + traits != "" && { name: "Traits", - value: termLines.join("\n"), + value: traits, inline: false, }, games.length > 0 && { name: "Associated Games", - value: gameLines, - inline: false, - }, - gameLines2 != "" && { - name: "\u200b", - value: gameLines2, - inline: false, - }, - clan.badge_color_primary && { - name: "Badge Colors", - value: `${clan.badge_color_primary}, ${clan.badge_color_secondary}`, + value: gamesLeft, inline: true, }, - clan.brand_color_primary && { + gamesRight != "" && { + name: "\u200b", + value: gamesRight, + inline: true, + }, + games.length > 0 && { + name: "\u200b", + value: "\u200b", + inline: false, + }, + profile.badge_color_primary && { + name: "Badge Colors", + value: `${profile.badge_color_primary}, ${profile.badge_color_secondary}`, + inline: true, + }, + profile.brand_color_primary && { name: "Banner/Brand Colors", - value: `${clan.brand_color_primary}${clan.brand_color_secondary ? `, ${clan.brand_color_secondary}` : ""}`, + value: `${profile.brand_color_primary}${ + profile.brand_color_secondary ? `, ${profile.brand_color_secondary}` : "" + }`, inline: true, }, ].filter((x) => !!x), }; - if (clan.badge_hash) { - const url = CDNEndpoints.CLAN_BADGE(clan.id, clan.badge_hash); + if (profile.badge_hash) { + const url = CDNEndpoints.CLAN_BADGE(profile.id, profile.badge_hash); images.push(`[Badge](${url})`); clanEmbed.author.icon_url = url; } - if (clan.banner_hash) { - const url = CDNEndpoints.CLAN_BANNER(clan.id, clan.banner_hash); + if (profile.banner_hash) { + const url = CDNEndpoints.CLAN_BANNER(profile.id, profile.banner_hash); images.push(`[Banner](${url})`); clanEmbed.image = {url}; }