From fb1f549be59191cb3f0cf19ff10a7ec7fbe4a768 Mon Sep 17 00:00:00 2001 From: Cynthia Foxwell Date: Mon, 21 Apr 2025 17:32:48 -0600 Subject: [PATCH] guildinfo: try 2 --- src/modules/utility/guildinfo.js | 268 ++++++++++++++++--------------- 1 file changed, 135 insertions(+), 133 deletions(-) diff --git a/src/modules/utility/guildinfo.js b/src/modules/utility/guildinfo.js index 6b59ead..5a56beb 100644 --- a/src/modules/utility/guildinfo.js +++ b/src/modules/utility/guildinfo.js @@ -71,8 +71,9 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) { _guild = await getGuild(snowflake, nolocal); id = snowflake; + let clan; try { - let clan = await hf.bot.requestHandler.request("GET", APIEndpoints.CLAN(snowflake), true); + clan = await hf.bot.requestHandler.request("GET", APIEndpoints.CLAN(snowflake), true); if (!clan) { if (guild.profile) { clan = guild.profile; @@ -93,141 +94,142 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) { } } } - - if (clan) { - const images = []; - - const game_ids = clan.game_ids ?? clan.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)) - .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; - }) - ); - - if (clan.wildcard_descriptors) clan.wildcard_descriptors = clan.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}:\`\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.search_terms.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"; - } - } - - clanEmbed = { - color: parseInt(clan.brand_color_primary.replace("#", "0x")), - title: _guild == null ? clan.name : null, - author: { - name: clan.tag, - }, - description: `-# :video_game:${ClanPlaystyle[clan.playstyle] ?? "Unknown"}${ - clan.wildcard_descriptors.length > 0 ? ` \u2022 **${clan.wildcard_descriptors.join(", ")}**` : "" - }\n\n${clan.description ?? "*No description*"}`, - fields: [ - !_guild && { - name: "Member Count", - value: clan.member_count, - inline: true, - }, - termLines.length > 0 && { - name: "Traits", - value: termLines.join("\n"), - 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}`, - inline: true, - }, - clan.brand_color_primary && { - name: "Banner/Brand Colors", - value: `${clan.brand_color_primary}${ - clan.brand_color_secondary ? `, ${clan.brand_color_secondary}` : "" - }`, - inline: true, - }, - ].filter((x) => !!x), - thumbnail: !_guild ? {url: CDNEndpoints.GUILD_ICON(clan.id, clan.icon_hash)} : null, - footer: !_guild ? {text: "Fetched from clan"} : null, - }; - - if (clan.badge_hash) { - const url = CDNEndpoints.CLAN_BADGE(clan.id, clan.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); - images.push(`[Banner](${url})`); - clanEmbed.image = {url}; - } - - if (images.length > 0) { - clanEmbed.fields.push({ - name: "\u200b", - value: images.join("\u3000\u3000"), - inline: false, - }); - } - } } catch { // noop } + + if (clan) { + const images = []; + + const game_ids = clan.game_ids ?? clan.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)) + .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; + }) + ); + + if (clan.wildcard_descriptors) clan.wildcard_descriptors = clan.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}:\`\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.search_terms.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"; + } + } + + clanEmbed = { + color: parseInt(clan.brand_color_primary.replace("#", "0x")), + title: _guild == null ? clan.name : null, + author: { + name: clan.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*", + fields: [ + !_guild && { + name: "Member Count", + value: clan.member_count, + inline: true, + }, + termLines.length > 0 && { + name: "Traits", + value: termLines.join("\n"), + 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}`, + inline: true, + }, + clan.brand_color_primary && { + name: "Banner/Brand Colors", + value: `${clan.brand_color_primary}${clan.brand_color_secondary ? `, ${clan.brand_color_secondary}` : ""}`, + inline: true, + }, + ].filter((x) => !!x), + thumbnail: !_guild ? {url: CDNEndpoints.GUILD_ICON(clan.id, clan.icon_hash)} : null, + footer: !_guild ? {text: "Fetched from clan"} : null, + }; + + if (clan.badge_hash) { + const url = CDNEndpoints.CLAN_BADGE(clan.id, clan.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); + images.push(`[Banner](${url})`); + clanEmbed.image = {url}; + } + + if (images.length > 0) { + clanEmbed.fields.push({ + name: "\u200b", + value: images.join("\u3000\u3000"), + inline: false, + }); + } + } } if (!_guild) {