utility.guildinfo: implement preview, discovery and widget
This commit is contained in:
parent
3abaf21585
commit
6c08af5aa9
1 changed files with 364 additions and 64 deletions
|
@ -473,7 +473,7 @@ avatar.callback = async function (msg, line, [user], {server, guild}) {
|
||||||
} else {
|
} else {
|
||||||
const guild = msg.channel.guild || hf.bot.guilds.get(msg.guildID);
|
const guild = msg.channel.guild || hf.bot.guilds.get(msg.guildID);
|
||||||
const url = `${ICON_BASE}${guild.id}/${guild.icon}.${
|
const url = `${ICON_BASE}${guild.id}/${guild.icon}.${
|
||||||
guild.icon.startsWith("a_") ? "gif?size=1024&_=.gif" : "png?size=1024"
|
guild.icon.startsWith("a_") ? "gif?size=4096&_=.gif" : "png?size=4096"
|
||||||
}`;
|
}`;
|
||||||
return {
|
return {
|
||||||
embeds: [
|
embeds: [
|
||||||
|
@ -523,8 +523,8 @@ avatar.callback = async function (msg, line, [user], {server, guild}) {
|
||||||
normalAvatar +
|
normalAvatar +
|
||||||
"." +
|
"." +
|
||||||
(normalAvatar.startsWith("a_")
|
(normalAvatar.startsWith("a_")
|
||||||
? "gif?size=1024&_=.gif"
|
? "gif?size=4096&_=.gif"
|
||||||
: "png?size=1024");
|
: "png?size=4096");
|
||||||
const guildUrl =
|
const guildUrl =
|
||||||
guildAvatar &&
|
guildAvatar &&
|
||||||
"https://cdn.discordapp.com/guilds/" +
|
"https://cdn.discordapp.com/guilds/" +
|
||||||
|
@ -535,8 +535,8 @@ avatar.callback = async function (msg, line, [user], {server, guild}) {
|
||||||
guildAvatar +
|
guildAvatar +
|
||||||
"." +
|
"." +
|
||||||
(guildAvatar.startsWith("a_")
|
(guildAvatar.startsWith("a_")
|
||||||
? "gif?size=1024&_=.gif"
|
? "gif?size=4096&_=.gif"
|
||||||
: "png?size=1024");
|
: "png?size=4096");
|
||||||
|
|
||||||
baseEmbed.description =
|
baseEmbed.description =
|
||||||
`[Normal avatar](${normalUrl})` +
|
`[Normal avatar](${normalUrl})` +
|
||||||
|
@ -568,8 +568,8 @@ avatar.callback = async function (msg, line, [user], {server, guild}) {
|
||||||
normalAvatar +
|
normalAvatar +
|
||||||
"." +
|
"." +
|
||||||
(normalAvatar.startsWith("a_")
|
(normalAvatar.startsWith("a_")
|
||||||
? "gif?size=1024&_=.gif"
|
? "gif?size=4096&_=.gif"
|
||||||
: "png?size=1024");
|
: "png?size=4096");
|
||||||
const guildUrl =
|
const guildUrl =
|
||||||
guildAvatar &&
|
guildAvatar &&
|
||||||
"https://cdn.discordapp.com/guilds/" +
|
"https://cdn.discordapp.com/guilds/" +
|
||||||
|
@ -580,8 +580,8 @@ avatar.callback = async function (msg, line, [user], {server, guild}) {
|
||||||
guildAvatar +
|
guildAvatar +
|
||||||
"." +
|
"." +
|
||||||
(guildAvatar.startsWith("a_")
|
(guildAvatar.startsWith("a_")
|
||||||
? "gif?size=1024&_=.gif"
|
? "gif?size=4096&_=.gif"
|
||||||
: "png?size=1024");
|
: "png?size=4096");
|
||||||
|
|
||||||
baseEmbed.description =
|
baseEmbed.description =
|
||||||
`[Normal avatar](${normalUrl})` +
|
`[Normal avatar](${normalUrl})` +
|
||||||
|
@ -651,7 +651,7 @@ banner.callback = async function (msg, line, [user], {server, guild}) {
|
||||||
if (!userObj.banner) return "This user does not have a banner.";
|
if (!userObj.banner) return "This user does not have a banner.";
|
||||||
|
|
||||||
const url = `${BANNER_BASE}${userObj.id}/${userObj.banner}.${
|
const url = `${BANNER_BASE}${userObj.id}/${userObj.banner}.${
|
||||||
userObj.banner.startsWith("a_") ? "gif?size=1024&_=.gif" : "png?size=1024"
|
userObj.banner.startsWith("a_") ? "gif?size=4096&_=.gif" : "png?size=4096"
|
||||||
}`;
|
}`;
|
||||||
return {
|
return {
|
||||||
embeds: [
|
embeds: [
|
||||||
|
@ -807,8 +807,8 @@ lookupinvite.callback = async function (msg, line) {
|
||||||
invite.guild.icon &&
|
invite.guild.icon &&
|
||||||
`${ICON_BASE}${invite.guild.id}/${invite.guild.icon}.${
|
`${ICON_BASE}${invite.guild.id}/${invite.guild.icon}.${
|
||||||
invite.guild.icon.startsWith("a_")
|
invite.guild.icon.startsWith("a_")
|
||||||
? "gif?size=1024&_=.gif"
|
? "gif?size=4096&_=.gif"
|
||||||
: "png?size=1024"
|
: "png?size=4096"
|
||||||
}`,
|
}`,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -822,15 +822,15 @@ lookupinvite.callback = async function (msg, line) {
|
||||||
invite.guild.icon
|
invite.guild.icon
|
||||||
? `[Icon](${ICON_BASE}${invite.guild.id}/${invite.guild.icon}.${
|
? `[Icon](${ICON_BASE}${invite.guild.id}/${invite.guild.icon}.${
|
||||||
invite.guild.icon.startsWith("a_")
|
invite.guild.icon.startsWith("a_")
|
||||||
? "gif?size=1024"
|
? "gif?size=4096"
|
||||||
: "png?size=1024"
|
: "png?size=4096"
|
||||||
})`
|
})`
|
||||||
: ""
|
: ""
|
||||||
}${
|
}${
|
||||||
invite.guild.splash
|
invite.guild.splash
|
||||||
? `${invite.guild.icon ? " | " : ""}[Splash](${SPLASH_BASE}${
|
? `${invite.guild.icon ? " | " : ""}[Splash](${SPLASH_BASE}${
|
||||||
invite.guild.id
|
invite.guild.id
|
||||||
}/${invite.guild.splash}.png?size=2048)`
|
}/${invite.guild.splash}.png?size=4096)`
|
||||||
: ""
|
: ""
|
||||||
}${
|
}${
|
||||||
invite.guild.banner
|
invite.guild.banner
|
||||||
|
@ -840,8 +840,8 @@ lookupinvite.callback = async function (msg, line) {
|
||||||
invite.guild.banner
|
invite.guild.banner
|
||||||
}.${
|
}.${
|
||||||
invite.guild.banner.startsWith("a_")
|
invite.guild.banner.startsWith("a_")
|
||||||
? "gif?size=1024"
|
? "gif?size=4096"
|
||||||
: "png?size=1024"
|
: "png?size=4096"
|
||||||
})`
|
})`
|
||||||
: ""
|
: ""
|
||||||
}`,
|
}`,
|
||||||
|
@ -888,8 +888,8 @@ lookupinvite.callback = async function (msg, line) {
|
||||||
const groupIcon = invite.channel.icon
|
const groupIcon = invite.channel.icon
|
||||||
? `${CHANNEL_ICON_BASE}${invite.channel.id}/${invite.channel.icon}.${
|
? `${CHANNEL_ICON_BASE}${invite.channel.id}/${invite.channel.icon}.${
|
||||||
invite.channel.icon.startsWith("a_")
|
invite.channel.icon.startsWith("a_")
|
||||||
? "gif?size=1024&_=.gif"
|
? "gif?size=4096&_=.gif"
|
||||||
: "png?size=1024"
|
: "png?size=4096"
|
||||||
}`
|
}`
|
||||||
: "https://discord.com" +
|
: "https://discord.com" +
|
||||||
DEFAULT_GROUP_DM_AVATARS[
|
DEFAULT_GROUP_DM_AVATARS[
|
||||||
|
@ -914,8 +914,8 @@ lookupinvite.callback = async function (msg, line) {
|
||||||
invite.inviter?.avatar &&
|
invite.inviter?.avatar &&
|
||||||
`${AVATAR_BASE}${invite.inviter.id}/${invite.inviter.avatar}.${
|
`${AVATAR_BASE}${invite.inviter.id}/${invite.inviter.avatar}.${
|
||||||
invite.inviter.avatar.startsWith("a_")
|
invite.inviter.avatar.startsWith("a_")
|
||||||
? "gif?size=1024&_=.gif"
|
? "gif?size=4096&_=.gif"
|
||||||
: "png?size=1024"
|
: "png?size=4096"
|
||||||
}`;
|
}`;
|
||||||
|
|
||||||
if (avatarURL) {
|
if (avatarURL) {
|
||||||
|
@ -1479,7 +1479,7 @@ appinfo.callback = async function (msg, line) {
|
||||||
|
|
||||||
if (app.icon) {
|
if (app.icon) {
|
||||||
embed.thumbnail = {
|
embed.thumbnail = {
|
||||||
url: `${APP_ICON_BASE}${app.id}/${app.icon}.png?size=1024`,
|
url: `${APP_ICON_BASE}${app.id}/${app.icon}.png?size=4096`,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1871,6 +1871,26 @@ guildinfo.callback = async function (msg, line) {
|
||||||
: "Only Mentions",
|
: "Only Mentions",
|
||||||
inline: true,
|
inline: true,
|
||||||
},
|
},
|
||||||
|
guild.rulesChannelID && {
|
||||||
|
name: "Rules",
|
||||||
|
value: `<#${guild.rulesChannelID}>`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
guild.systemChannelID && {
|
||||||
|
name: "System Messages",
|
||||||
|
value: `<#${guild.systemChannelID}>`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
guild.publicUpdatesChannelID && {
|
||||||
|
name: "Community Updates",
|
||||||
|
value: `<#${guild.publicUpdatesChannelID}>`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
guild.safetyAlertsChannelID && {
|
||||||
|
name: "Safety Alerts",
|
||||||
|
value: `<#${guild.safetyAlertsChannelID}>`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: `Channels (${guild.channels.size})`,
|
name: `Channels (${guild.channels.size})`,
|
||||||
value:
|
value:
|
||||||
|
@ -1922,49 +1942,12 @@ guildinfo.callback = async function (msg, line) {
|
||||||
embed.thumbnail = {
|
embed.thumbnail = {
|
||||||
url: `${ICON_BASE}${guild.id}/${guild.icon}.${
|
url: `${ICON_BASE}${guild.id}/${guild.icon}.${
|
||||||
guild.icon.startsWith("a_")
|
guild.icon.startsWith("a_")
|
||||||
? "gif?size=1024&_=.gif"
|
? "gif?size=4096&_=.gif"
|
||||||
: "png?size=1024"
|
: "png?size=4096"
|
||||||
}`,
|
}`,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guild.systemChannelID) {
|
|
||||||
embed.fields.push({
|
|
||||||
name: "System Messages",
|
|
||||||
value: `#${guild.channels.get(guild.systemChannelID).name} (\`${
|
|
||||||
guild.systemChannelID
|
|
||||||
}\`)`,
|
|
||||||
inline: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (guild.rulesChannelID) {
|
|
||||||
embed.fields.push({
|
|
||||||
name: "Rules",
|
|
||||||
value: `#${guild.channels.get(guild.rulesChannelID).name} (\`${
|
|
||||||
guild.rulesChannelID
|
|
||||||
}\`)`,
|
|
||||||
inline: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (guild.publicUpdatesChannelID) {
|
|
||||||
embed.fields.push({
|
|
||||||
name: "Community Updates",
|
|
||||||
value: `#${
|
|
||||||
guild.channels.get(guild.publicUpdatesChannelID).name
|
|
||||||
} (\`${guild.publicUpdatesChannelID}\`)`,
|
|
||||||
inline: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (guild.safetyAlertsChannelID) {
|
|
||||||
embed.fields.push({
|
|
||||||
name: "Safety Alerts",
|
|
||||||
value: `#${guild.channels.get(guild.safetyAlertsChannelID).name} (\`${
|
|
||||||
guild.safetyAlertsChannelID
|
|
||||||
}\`)`,
|
|
||||||
inline: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const members = Array.from(guild.members.values());
|
const members = Array.from(guild.members.values());
|
||||||
const online = members.filter(
|
const online = members.filter(
|
||||||
(member) => member.status != null && member.status != "offline"
|
(member) => member.status != null && member.status != "offline"
|
||||||
|
@ -2038,13 +2021,330 @@ guildinfo.callback = async function (msg, line) {
|
||||||
return {embed};
|
return {embed};
|
||||||
}
|
}
|
||||||
case "preview": {
|
case "preview": {
|
||||||
return "TODO: guild from preview";
|
const embed = {
|
||||||
|
title: guild.name,
|
||||||
|
description: guild.description ?? "*No description.*",
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
name: "Created",
|
||||||
|
value: `<t:${Math.floor(snowflakeToTimestamp(guild.id) / 1000)}:R>`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: `Emotes (${guild.emojis.length})`,
|
||||||
|
value: `${
|
||||||
|
guild.emojis.filter((e) => e.animated).length
|
||||||
|
} animated, ${
|
||||||
|
guild.emojis.filter((e) => e.managed).length
|
||||||
|
} managed\n${
|
||||||
|
guild.emojis.filter((e) => !e.available).length
|
||||||
|
} unavailable`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: `Stickers (${guild.stickers.length})`,
|
||||||
|
value: `${
|
||||||
|
guild.stickers.filter((s) => s.format_type == 1).length
|
||||||
|
} PNG, ${
|
||||||
|
guild.stickers.filter((s) => s.format_type == 2).length
|
||||||
|
} APNG, ${
|
||||||
|
guild.stickers.filter((s) => s.format_type == 4).length
|
||||||
|
} GIF, ${
|
||||||
|
guild.stickers.filter((s) => s.format_type == 3).length
|
||||||
|
} Lottie\n${
|
||||||
|
guild.stickers.filter((s) => !s.available).length
|
||||||
|
} unavailable`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
footer: {
|
||||||
|
text: "Fetched from guild preview",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
if (guild.icon) {
|
||||||
|
embed.thumbnail = {
|
||||||
|
url: `${ICON_BASE}${guild.id}/${guild.icon}.${
|
||||||
|
guild.icon.startsWith("a_")
|
||||||
|
? "gif?size=4096&_=.gif"
|
||||||
|
: "png?size=4096"
|
||||||
|
}`,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
embed.fields.push({
|
||||||
|
name: "Member Count",
|
||||||
|
value: `<:online:1152111668856361010>${guild.approximate_presence_count} online\t\t<:offline:1152111682886316042>${guild.approximate_member_count} members`,
|
||||||
|
inline: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
const features = guild.features.sort().map(
|
||||||
|
(feature) =>
|
||||||
|
(GUILD_FEATURES[feature]?.icon ?? "\u2753") +
|
||||||
|
" " +
|
||||||
|
(GUILD_FEATURES[feature]?.name ??
|
||||||
|
feature
|
||||||
|
.split("_")
|
||||||
|
.map((x) => x[0] + x.substring(1).toLowerCase())
|
||||||
|
.join(" "))
|
||||||
|
);
|
||||||
|
|
||||||
|
embed.fields.push({
|
||||||
|
name: `Features (${features.length})`,
|
||||||
|
value:
|
||||||
|
features.length > 0
|
||||||
|
? features.slice(0, Math.ceil(features.length / 2)).join("\n")
|
||||||
|
: "None",
|
||||||
|
inline: true,
|
||||||
|
});
|
||||||
|
if (features.length > 1)
|
||||||
|
embed.fields.push({
|
||||||
|
name: "\u200b",
|
||||||
|
value: features
|
||||||
|
.slice(Math.ceil(features.length / 2), features.length)
|
||||||
|
.join("\n"),
|
||||||
|
inline: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const images = [];
|
||||||
|
if (guild.icon) {
|
||||||
|
images.push(`[Icon](${embed.thumbnail.url})`);
|
||||||
|
}
|
||||||
|
if (guild.splash) {
|
||||||
|
images.push(
|
||||||
|
`[Invite Splash](${SPLASH_BASE}${guild.id}/${guild.splash}.png?size=4096)`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (guild.discovery_splash) {
|
||||||
|
images.push(
|
||||||
|
`[Discovery Splash](${DISCOVERY_SPLASH_BASE}${guild.id}/${guild.discoverySplash}.png?size=4096)`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (images.length > 0) {
|
||||||
|
embed.fields.push({
|
||||||
|
name: "\u200b",
|
||||||
|
value: images.join(" | "),
|
||||||
|
inline: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return {embed};
|
||||||
}
|
}
|
||||||
case "discovery": {
|
case "discovery": {
|
||||||
return "TODO: guild from discovery";
|
if (!guild.store_page) {
|
||||||
|
return "Got discovery data but no store page.";
|
||||||
|
}
|
||||||
|
|
||||||
|
const guildObj = guild.store_page.guild;
|
||||||
|
|
||||||
|
let invite;
|
||||||
|
if (
|
||||||
|
guildObj.invite?.code ||
|
||||||
|
guild.store_page.role_subscription.purchase_page_invite?.code
|
||||||
|
) {
|
||||||
|
const code =
|
||||||
|
guildObj.invite?.code ??
|
||||||
|
guild.store_page.role_subscription.purchase_page_invite?.code;
|
||||||
|
invite = await hf.bot.requestHandler.request(
|
||||||
|
"GET",
|
||||||
|
`/invites/${code}?with_counts=true&with_expiration=true`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const embed = {
|
||||||
|
title: guildObj.name,
|
||||||
|
description: invite?.guild?.description ?? "*No description.*",
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
name: "Created",
|
||||||
|
value: `<t:${Math.floor(
|
||||||
|
snowflakeToTimestamp(guildObj.id) / 1000
|
||||||
|
)}:R>`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
footer: {
|
||||||
|
text: "Fetched from discovery" + (invite ? " + invite" : ""),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
if (guildObj.icon_hash) {
|
||||||
|
embed.thumbnail = {
|
||||||
|
url: `${ICON_BASE}${guildObj.id}/${guildObj.icon_hash}.${
|
||||||
|
guildObj.icon_hash.startsWith("a_")
|
||||||
|
? "gif?size=4096&_=.gif"
|
||||||
|
: "png?size=4096"
|
||||||
|
}`,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const invites = [];
|
||||||
|
if (guildObj.invite?.code) invites.push(guildObj.invite.code);
|
||||||
|
if (guild.store_page.role_subscription.purchase_page_invite?.code)
|
||||||
|
invites.push(
|
||||||
|
guild.store_page.role_subscription.purchase_page_invite.code
|
||||||
|
);
|
||||||
|
|
||||||
|
if (invites.length > 0) {
|
||||||
|
embed.fields.push({
|
||||||
|
name: "Invites",
|
||||||
|
value: invites.map((code) => "https://discord.gg/" + code).join("\n"),
|
||||||
|
inline: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
embed.fields.push({
|
||||||
|
name: "Member Count",
|
||||||
|
value: `<:online:1152111668856361010>${guildObj.approximate_presence_count} online\t\t<:offline:1152111682886316042>${guildObj.approximate_member_count} members`,
|
||||||
|
inline: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (invite?.guild?.features) {
|
||||||
|
const features = invite.guild.features.sort().map(
|
||||||
|
(feature) =>
|
||||||
|
(GUILD_FEATURES[feature]?.icon ?? "\u2753") +
|
||||||
|
" " +
|
||||||
|
(GUILD_FEATURES[feature]?.name ??
|
||||||
|
feature
|
||||||
|
.split("_")
|
||||||
|
.map((x) => x[0] + x.substring(1).toLowerCase())
|
||||||
|
.join(" "))
|
||||||
|
);
|
||||||
|
|
||||||
|
embed.fields.push({
|
||||||
|
name: `Features (${features.length})`,
|
||||||
|
value:
|
||||||
|
features.length > 0
|
||||||
|
? features.slice(0, Math.ceil(features.length / 2)).join("\n")
|
||||||
|
: "None",
|
||||||
|
inline: true,
|
||||||
|
});
|
||||||
|
if (features.length > 1)
|
||||||
|
embed.fields.push({
|
||||||
|
name: "\u200b",
|
||||||
|
value: features
|
||||||
|
.slice(Math.ceil(features.length / 2), features.length)
|
||||||
|
.join("\n"),
|
||||||
|
inline: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const images = [];
|
||||||
|
if (guildObj.icon_hash) {
|
||||||
|
images.push(`[Icon](${embed.thumbnail.url})`);
|
||||||
|
}
|
||||||
|
if (invite?.guild?.splash) {
|
||||||
|
images.push(
|
||||||
|
`[Invite Splash](${SPLASH_BASE}${guild.id}/${guild.splash}.png?size=4096)`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (invite?.guild?.banner) {
|
||||||
|
images.push(
|
||||||
|
`[Banner](${BANNER_BASE}${guild.id}/${guild.banner}.png?size=4096)`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (images.length > 0) {
|
||||||
|
embed.fields.push({
|
||||||
|
name: "\u200b",
|
||||||
|
value: images.join(" | "),
|
||||||
|
inline: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return {embed};
|
||||||
}
|
}
|
||||||
case "widget": {
|
case "widget": {
|
||||||
return "TODO: guild from widget";
|
let invite;
|
||||||
|
if (guild.instant_invite) {
|
||||||
|
invite = await hf.bot.requestHandler.request(
|
||||||
|
"GET",
|
||||||
|
`/invites/${guild.instant_invite}?with_counts=true&with_expiration=true`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const embed = {
|
||||||
|
title: guild.name,
|
||||||
|
description: invite?.guild?.description ?? "*No description.*",
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
name: "Created",
|
||||||
|
value: `<t:${Math.floor(snowflakeToTimestamp(guild.id) / 1000)}:R>`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
footer: {
|
||||||
|
text: "Fetched from widget" + (invite ? " + invite" : ""),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
if (invite) {
|
||||||
|
embed.fields.push({
|
||||||
|
name: "Member Count",
|
||||||
|
value: `<:online:1152111668856361010>${invite.approximate_presence_count} online\t\t<:offline:1152111682886316042>${invite.approximate_member_count} members`,
|
||||||
|
inline: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
const features = invite.guild.features.sort().map(
|
||||||
|
(feature) =>
|
||||||
|
(GUILD_FEATURES[feature]?.icon ?? "\u2753") +
|
||||||
|
" " +
|
||||||
|
(GUILD_FEATURES[feature]?.name ??
|
||||||
|
feature
|
||||||
|
.split("_")
|
||||||
|
.map((x) => x[0] + x.substring(1).toLowerCase())
|
||||||
|
.join(" "))
|
||||||
|
);
|
||||||
|
|
||||||
|
embed.fields.push({
|
||||||
|
name: `Features (${features.length})`,
|
||||||
|
value:
|
||||||
|
features.length > 0
|
||||||
|
? features.slice(0, Math.ceil(features.length / 2)).join("\n")
|
||||||
|
: "None",
|
||||||
|
inline: true,
|
||||||
|
});
|
||||||
|
if (features.length > 1)
|
||||||
|
embed.fields.push({
|
||||||
|
name: "\u200b",
|
||||||
|
value: features
|
||||||
|
.slice(Math.ceil(features.length / 2), features.length)
|
||||||
|
.join("\n"),
|
||||||
|
inline: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const images = [];
|
||||||
|
if (invite.guild.icon) {
|
||||||
|
images.push(`[Icon](${embed.thumbnail.url})`);
|
||||||
|
}
|
||||||
|
if (invite.guild.splash) {
|
||||||
|
images.push(
|
||||||
|
`[Invite Splash](${SPLASH_BASE}${guild.id}/${guild.splash}.png?size=4096)`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (invite.guild.banner) {
|
||||||
|
images.push(
|
||||||
|
`[Banner](${BANNER_BASE}${guild.id}/${guild.banner}.png?size=4096)`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (images.length > 0) {
|
||||||
|
embed.fields.push({
|
||||||
|
name: "\u200b",
|
||||||
|
value: images.join(" | "),
|
||||||
|
inline: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
embed.fields.push({
|
||||||
|
name: "Member Count",
|
||||||
|
value: `<:online:1152111668856361010>${guild.presence_count} online`,
|
||||||
|
inline: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return embed;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return "Guild not found.";
|
return "Guild not found.";
|
||||||
|
|
Loading…
Reference in a new issue