diff --git a/commands/message/info/guild.js b/commands/message/info/guild.js index d96fb64..9b43f52 100644 --- a/commands/message/info/guild.js +++ b/commands/message/info/guild.js @@ -3,6 +3,7 @@ const { PERMISSION_GROUPS } = require('#constants'); const { createEmbed, page, formatPaginationEmbeds } = require("#utils/embed"); const { guildFeaturesField } = require("#utils/fields"); +const { getAcronym, getGuildIcon } = require('#utils/guilds'); const { acknowledge } = require('#utils/interactions'); const { icon, highlight, timestamp, codeblock, smallIconPill } = require("#utils/markdown"); const { editOrReply } = require("#utils/message"); @@ -54,14 +55,11 @@ module.exports = { let guildCard = createEmbed("default", context, { description: `${icon("home")} **${g.name}** ${highlight(`(${g.id})`)}\n${pillDisplay}\n\n${icon("calendar")} **Server created** ${timestamp(g.createdAt, "f")}`, - fields: [] - }) - - if(g.iconUrl){ - guildCard.thumbnail = { - url: g.iconUrl + `?size=4096` + fields: [], + thumbnail: { + url: getGuildIcon(g) } - } + }) // Channel Container let lines = []; diff --git a/commands/message/info/invite.js b/commands/message/info/invite.js index b9766f9..f8b1943 100644 --- a/commands/message/info/invite.js +++ b/commands/message/info/invite.js @@ -3,6 +3,7 @@ const { DISCORD_INVITES, OPEN_SOURCE_REPOSITORY_URL, PERMISSION_GROUPS } = requi const { createEmbed, formatPaginationEmbeds, page } = require("#utils/embed"); const { guildFeaturesField } = require("#utils/fields"); +const { getGuildIcon } = require('#utils/guilds'); const { acknowledge } = require('#utils/interactions'); const { icon, highlight, timestamp, iconPill, iconLinkPill, link } = require("#utils/markdown"); const { editOrReply } = require("#utils/message"); @@ -48,14 +49,11 @@ module.exports = { if(g.description) gDesc = g.description + "\n\n" let inviteCard = createEmbed("default", context, { description: `${icon("link")} **https://discord.gg/${inviteCode[1]}**\n\n​${icon("home")} **${g.name}** ${highlight(`(${g.id})`)}\n${iconPill("user_multiple", invite.approximateMemberCount.toLocaleString())} ​ ​ ​ ​ ​ ${iconPill("status_online", invite.approximatePresenceCount.toLocaleString())}​ ​ ​ ${iconPill("status_offline", (invite.approximateMemberCount - invite.approximatePresenceCount).toLocaleString())}\n\n${gDesc}${icon("calendar")} **Created at: **${timestamp(g.createdAt, "f")}\n`, - fields: [] - }) - - if(g.iconUrl){ - inviteCard.thumbnail = { - url: g.iconUrl + `?size=4096` + fields: [], + thumbnail: { + url: getGuildIcon(g) } - } + }) if(g.splash){ inviteCard.image = { diff --git a/labscore/utils/guilds.js b/labscore/utils/guilds.js new file mode 100644 index 0000000..d8e01fc --- /dev/null +++ b/labscore/utils/guilds.js @@ -0,0 +1,16 @@ +function getAcronym(guildName){ + // Based on discord-web + return guildName.replace(/'s /g, " ").replace(/\w+/g, e => e[0]).replace(/\s/g, "") +} + +function getGuildIcon(guild){ + return (guild.iconUrl ? + guild.iconUrl + "?size=4096" : + // Removes emojis from the icon since this api doesn't support them, todo for the future maybe build our own image generation service for these. + "https://ui-avatars.com/api/?background=333339&color=fff&size=512&uppercase=false&length=999&name=" + encodeURIComponent(getAcronym(guild.name).replace(/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?)*/g, ''))) +} + +module.exports = { + getAcronym, + getGuildIcon +} \ No newline at end of file