guildinfo: bootleg profiles support
This commit is contained in:
		
							parent
							
								
									ffb47a7c28
								
							
						
					
					
						commit
						58183ab07a
					
				
					 2 changed files with 58 additions and 22 deletions
				
			
		| 
						 | 
				
			
			@ -72,7 +72,27 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
 | 
			
		|||
    id = snowflake;
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      const clan = await hf.bot.requestHandler.request("GET", APIEndpoints.CLAN(snowflake), true);
 | 
			
		||||
      let clan = await hf.bot.requestHandler.request("GET", APIEndpoints.CLAN(snowflake), true);
 | 
			
		||||
      if (!clan) {
 | 
			
		||||
        if (guild.profile) {
 | 
			
		||||
          clan = guild.profile;
 | 
			
		||||
        } else {
 | 
			
		||||
          const verif = await hf.bot.requestHandler.request(
 | 
			
		||||
            "GET",
 | 
			
		||||
            `${APIEndpoints.GUILD_MEMBER_VERIFICATION(snowflake)}?with_guild=true`,
 | 
			
		||||
            true
 | 
			
		||||
          );
 | 
			
		||||
          if (verif?.profile) {
 | 
			
		||||
            clan = verif.profile;
 | 
			
		||||
          } else if (guild.vanityURL) {
 | 
			
		||||
            const invite = await hf.bot.requestHandler.request(
 | 
			
		||||
              "GET",
 | 
			
		||||
              `${APIEndpoints.INVITE(guild.vanityURL)}?with_counts=true&with_expiration=true`
 | 
			
		||||
            );
 | 
			
		||||
            if (invite?.profile) clan = invite.profile;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (clan) {
 | 
			
		||||
        const images = [];
 | 
			
		||||
| 
						 | 
				
			
			@ -99,20 +119,34 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
 | 
			
		|||
            })
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        clan.wildcard_descriptors = clan.wildcard_descriptors.filter((x) => x != "");
 | 
			
		||||
        if (clan.wildcard_descriptors) clan.wildcard_descriptors = clan.wildcard_descriptors.filter((x) => x != "");
 | 
			
		||||
 | 
			
		||||
        const termLines = [];
 | 
			
		||||
        let currentTerm = "";
 | 
			
		||||
        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 (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);
 | 
			
		||||
          }
 | 
			
		||||
          if (index == clan.search_terms.length - 1) termLines.push(currentTerm);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        let gameLines = "";
 | 
			
		||||
| 
						 | 
				
			
			@ -140,8 +174,8 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
 | 
			
		|||
              value: clan.member_count,
 | 
			
		||||
              inline: true,
 | 
			
		||||
            },
 | 
			
		||||
            clan.search_terms.length > 0 && {
 | 
			
		||||
              name: "Interests/Topics/Traits",
 | 
			
		||||
            termLines.length > 0 && {
 | 
			
		||||
              name: "Traits",
 | 
			
		||||
              value: termLines.join("\n"),
 | 
			
		||||
              inline: false,
 | 
			
		||||
            },
 | 
			
		||||
| 
						 | 
				
			
			@ -155,14 +189,16 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
 | 
			
		|||
              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}`,
 | 
			
		||||
              value: `${clan.brand_color_primary}${
 | 
			
		||||
                clan.brand_color_secondary ? `, ${clan.brand_color_secondary}` : ""
 | 
			
		||||
              }`,
 | 
			
		||||
              inline: true,
 | 
			
		||||
            },
 | 
			
		||||
          ].filter((x) => !!x),
 | 
			
		||||
| 
						 | 
				
			
			@ -526,7 +562,7 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
 | 
			
		|||
 | 
			
		||||
      embed.fields.push({
 | 
			
		||||
        name: "Member Count",
 | 
			
		||||
        value: `${Icons.online}${guildObj.approximate_presence_count} online\t\t${Icons.offline}${guildObj.approximate_member_count} members`,
 | 
			
		||||
        value: `${Icons.online}${guildObj.approximate_presence_count} online\u3000\u3000${Icons.offline}${guildObj.approximate_member_count} members`,
 | 
			
		||||
        inline: false,
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -564,9 +600,8 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
 | 
			
		|||
      if (guild.instant_invite) {
 | 
			
		||||
        invite = await hf.bot.requestHandler.request(
 | 
			
		||||
          "GET",
 | 
			
		||||
          `/invites/${guild.instant_invite.replace(
 | 
			
		||||
            /(https?:\/\/)?(canary\.|ptb\.)?discord(\.gg|(app)?.com\/invite)\//,
 | 
			
		||||
            ""
 | 
			
		||||
          `${APIEndpoints.INVITE(
 | 
			
		||||
            guild.instant_invite.replace(/(https?:\/\/)?(canary\.|ptb\.)?discord(\.gg|(app)?.com\/invite)\//, "")
 | 
			
		||||
          )}?with_counts=true&with_expiration=true`
 | 
			
		||||
        );
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			@ -595,7 +630,7 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
 | 
			
		|||
 | 
			
		||||
        embed.fields.push({
 | 
			
		||||
          name: "Member Count",
 | 
			
		||||
          value: `${Icons.online}${invite.approximate_presence_count} online\t\t${Icons.offline}${invite.approximate_member_count} members`,
 | 
			
		||||
          value: `${Icons.online}${invite.approximate_presence_count} online\u3000\u3000${Icons.offline}${invite.approximate_member_count} members`,
 | 
			
		||||
          inline: false,
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,7 +81,8 @@ async function getGuild(id, noLocal = false) {
 | 
			
		|||
            `${APIEndpoints.GUILD_MEMBER_VERIFICATION(id)}?with_guild=true`,
 | 
			
		||||
            true
 | 
			
		||||
          );
 | 
			
		||||
          if (verification?.guild) return {source: "verification", data: verification.guild};
 | 
			
		||||
          if (verification?.guild)
 | 
			
		||||
            return {source: "verification", data: {...verification.guild, profile: verification.profile}};
 | 
			
		||||
        } catch {
 | 
			
		||||
          return null;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue