Compare commits

...

2 commits

Author SHA1 Message Date
4cbe9e7080
vr the real 2026-02-13 11:16:32 -07:00
0b64578413
remove clan endpoint, add guild basic endpoint 2026-02-13 11:16:19 -07:00
4 changed files with 61 additions and 56 deletions

View file

@ -246,7 +246,7 @@ instead(bot.shards, "spawn", function (args, orig) {
if (shard) { if (shard) {
before(shard.__proto__, "sendWS", function ([op, _data]) { before(shard.__proto__, "sendWS", function ([op, _data]) {
if (op === GatewayOPCodes.IDENTIFY) { if (op === GatewayOPCodes.IDENTIFY) {
_data.properties.browser = "Discord Embedded"; _data.properties.browser = "Discord VR";
delete _data.properties.device; delete _data.properties.device;
} }
}); });

View file

@ -37,7 +37,7 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
await msg.channel.sendTyping().catch(() => {}); await msg.channel.sendTyping().catch(() => {});
} }
let _guild, clanEmbed, id; let _guild, profileEmbed, id;
if (!line || line == "") { if (!line || line == "") {
if (!msg.guildID) return "Not in a guild."; if (!msg.guildID) return "Not in a guild.";
const __guild = msg.channel.guild ?? hf.bot.guilds.get(msg.guildID); const __guild = msg.channel.guild ?? hf.bot.guilds.get(msg.guildID);
@ -67,7 +67,7 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
"widget": ${sources.widget} "widget": ${sources.widget}
"discovery": ${sources.discovery} "discovery": ${sources.discovery}
"verification": ${sources.verification} "verification": ${sources.verification}
"clan": ${sources.clan} "basic": ${sources.basic}${sources.local && sources.basic ? " // false positive, local = true" : ""}
\`\`\``; \`\`\``;
} else { } else {
if (!SNOWFLAKE_REGEX.test(line)) return "Not a snowflake."; if (!SNOWFLAKE_REGEX.test(line)) return "Not a snowflake.";
@ -117,7 +117,7 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
const gamesLeft = games.slice(0, Math.ceil(games.length / 2)).join("\n"); 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"); const gamesRight = games.slice(Math.ceil(games.length / 2), games.length).join("\n");
clanEmbed = { profileEmbed = {
color: profile.brand_color_primary ? parseInt(profile.brand_color_primary.replace("#", "0x")) : 0, color: profile.brand_color_primary ? parseInt(profile.brand_color_primary.replace("#", "0x")) : 0,
title: _guild == null ? profile.name : null, title: _guild == null ? profile.name : null,
author: { author: {
@ -175,16 +175,16 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
if (profile.badge_hash) { if (profile.badge_hash) {
const url = CDNEndpoints.CLAN_BADGE(profile.id, profile.badge_hash); const url = CDNEndpoints.CLAN_BADGE(profile.id, profile.badge_hash);
images.push(`[Badge](${url})`); images.push(`[Badge](${url})`);
clanEmbed.author.icon_url = url; profileEmbed.author.icon_url = url;
} }
if (profile.banner_hash) { if (profile.banner_hash) {
const url = CDNEndpoints.CLAN_BANNER(profile.id, profile.banner_hash); const url = CDNEndpoints.CLAN_BANNER(profile.id, profile.banner_hash);
images.push(`[Banner](${url})`); images.push(`[Banner](${url})`);
clanEmbed.image = {url}; profileEmbed.image = {url};
} }
if (images.length > 0) { if (images.length > 0) {
clanEmbed.fields.push({ profileEmbed.fields.push({
name: "\u200b", name: "\u200b",
value: images.join("\u3000\u3000"), value: images.join("\u3000\u3000"),
inline: false, inline: false,
@ -193,8 +193,8 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
} }
if (!_guild) { if (!_guild) {
if (clanEmbed != null) { if (profileEmbed != null) {
return {embeds: [clanEmbed]}; return {embeds: [profileEmbed]};
} else { } else {
try { try {
await hf.bot.requestHandler.request("GET", APIEndpoints.GUILD_WIDGET(id), false); await hf.bot.requestHandler.request("GET", APIEndpoints.GUILD_WIDGET(id), false);
@ -389,8 +389,8 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
}); });
} }
if (clanEmbed) { if (profileEmbed) {
return {embeds: [embed, clanEmbed]}; return {embeds: [embed, profileEmbed]};
} else { } else {
return {embed}; return {embed};
} }
@ -466,8 +466,8 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
}); });
} }
if (clanEmbed) { if (profileEmbed) {
return {embeds: [embed, clanEmbed]}; return {embeds: [embed, profileEmbed]};
} else { } else {
return {embed}; return {embed};
} }
@ -551,8 +551,8 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
}); });
} }
if (clanEmbed) { if (profileEmbed) {
return {embeds: [embed, clanEmbed]}; return {embeds: [embed, profileEmbed]};
} else { } else {
return {embed}; return {embed};
} }
@ -624,8 +624,8 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) {
}); });
} }
if (clanEmbed) { if (profileEmbed) {
return {embeds: [embed, clanEmbed]}; return {embeds: [embed, profileEmbed]};
} else { } else {
return {embed}; return {embed};
} }

View file

@ -40,8 +40,8 @@ delete APIEndpoints.MESSAGE_LINK;
APIEndpoints.APPLICATION_ASSETS = (applicationID) => `/oauth2/applications/${applicationID}/assets`; // prettier-ignore APIEndpoints.APPLICATION_ASSETS = (applicationID) => `/oauth2/applications/${applicationID}/assets`; // prettier-ignore
APIEndpoints.APPLICATION_RPC = (applicationID) => `/applications/${applicationID}/rpc`; // prettier-ignore APIEndpoints.APPLICATION_RPC = (applicationID) => `/applications/${applicationID}/rpc`; // prettier-ignore
APIEndpoints.ATTACHMENT_REFRESH = "/attachments/refresh-urls"; // prettier-ignore APIEndpoints.ATTACHMENT_REFRESH = "/attachments/refresh-urls"; // prettier-ignore
APIEndpoints.CLAN = (guildID) => `/discovery/${guildID}/clan`; // prettier-ignore
APIEndpoints.DISCOVERY_SLUG = (guildID) => `/discovery/${guildID}`; // prettier-ignore APIEndpoints.DISCOVERY_SLUG = (guildID) => `/discovery/${guildID}`; // prettier-ignore
APIEndpoints.GUILD_BASIC = (guildID) => `/guilds/${guildID}/basic`; // prettier-ignore
APIEndpoints.GUILD_MEMBER_VERIFICATION = (guildID) => `/guilds/${guildID}/member-verification`; // prettier-ignore APIEndpoints.GUILD_MEMBER_VERIFICATION = (guildID) => `/guilds/${guildID}/member-verification`; // prettier-ignore
APIEndpoints.POMELO_UNAUTHED = "/unique-username/username-attempt-unauthed"; // prettier-ignore APIEndpoints.POMELO_UNAUTHED = "/unique-username/username-attempt-unauthed"; // prettier-ignore
APIEndpoints.STORE_PUBLISHED_LISTING = (skuID) => `/store/published-listings/skus/${skuID}`; // prettier-ignore APIEndpoints.STORE_PUBLISHED_LISTING = (skuID) => `/store/published-listings/skus/${skuID}`; // prettier-ignore

View file

@ -76,15 +76,20 @@ async function getGuild(id, noLocal = false) {
if (discovery) return {source: "discovery", data: discovery}; if (discovery) return {source: "discovery", data: discovery};
} catch { } catch {
try { try {
const verification = await hf.bot.requestHandler.request( const basic = await hf.bot.requestHandler.request("GET", APIEndpoints.GUILD_BASIC(id), true);
"GET", if (basic) return {source: "basic", data: basic};
`${APIEndpoints.GUILD_MEMBER_VERIFICATION(id)}?with_guild=true`,
true
);
if (verification?.guild)
return {source: "verification", data: {...verification.guild, profile: verification.profile}};
} catch { } catch {
return null; try {
const verification = await hf.bot.requestHandler.request(
"GET",
`${APIEndpoints.GUILD_MEMBER_VERIFICATION(id)}?with_guild=true`,
true
);
if (verification?.guild)
return {source: "verification", data: {...verification.guild, profile: verification.profile}};
} catch {
return null;
}
} }
} }
} }
@ -96,35 +101,35 @@ async function getGuild(id, noLocal = false) {
async function getGuildProfile(id, guild = null) { async function getGuildProfile(id, guild = null) {
if (guild == null) guild = await getGuild(id); if (guild == null) guild = await getGuild(id);
let profile = await hf.bot.requestHandler.request("GET", APIEndpoints.CLAN(id), true).catch(() => {}); let profile;
if (!profile) { if (guild?.data?.profile) {
if (guild?.data?.profile) { profile = guild.data.profile;
profile = guild?.profile; } else if (guild?.profile) {
profile = guild.profile;
} else {
const verif = await hf.bot.requestHandler
.request("GET", `${APIEndpoints.GUILD_MEMBER_VERIFICATION(id)}?with_guild=true`, true)
.catch(() => {});
if (verif?.profile) {
profile = verif.profile;
} else { } else {
const verif = await hf.bot.requestHandler let code =
.request("GET", `${APIEndpoints.GUILD_MEMBER_VERIFICATION(id)}?with_guild=true`, true) guild?.data?.vanityURL ??
.catch(() => {}); guild?.data?.store_page?.guild?.invite?.code ??
if (verif?.profile) { guild?.data?.store_page?.role_subscription?.purchase_page_invite?.code ??
profile = verif.profile; guild?.data?.instant_invite?.replace(/(https?:\/\/)?(canary\.|ptb\.)?discord(\.gg|(app)?.com\/invite)\//, "");
} else { if (!code && hf.bot.guilds.has(id)) {
let code = const invites = await hf.bot.requestHandler
guild?.data?.vanityURL ?? .request("GET", APIEndpoints.GUILD_INVITES(id), true)
guild?.data?.store_page?.guild?.invite?.code ?? .catch(() => {});
guild?.data?.store_page?.role_subscription?.purchase_page_invite?.code ?? if (invites?.[0]?.code) code = invites[0].code;
guild?.data?.instant_invite?.replace(/(https?:\/\/)?(canary\.|ptb\.)?discord(\.gg|(app)?.com\/invite)\//, ""); }
if (!code && hf.bot.guilds.has(id)) {
const invites = await hf.bot.requestHandler
.request("GET", APIEndpoints.GUILD_INVITES(id), true)
.catch(() => {});
if (invites?.[0]?.code) code = invites[0].code;
}
if (code) { if (code) {
const invite = await hf.bot.requestHandler const invite = await hf.bot.requestHandler
.request("GET", `${APIEndpoints.INVITE(code)}?with_counts=true&with_expiration=true`) .request("GET", `${APIEndpoints.INVITE(code)}?with_counts=true&with_expiration=true`)
.catch(() => {}); .catch(() => {});
if (invite?.profile) profile = invite.profile; if (invite?.profile) profile = invite.profile;
}
} }
} }
} }
@ -139,7 +144,7 @@ async function tryGetGuild(id) {
widget: false, widget: false,
discovery: false, discovery: false,
verification: false, verification: false,
clan: false, basic: false,
}; };
if (hf.bot.guilds.has(id)) { if (hf.bot.guilds.has(id)) {
@ -179,8 +184,8 @@ async function tryGetGuild(id) {
} }
try { try {
const clan = await hf.bot.requestHandler.request("GET", APIEndpoints.CLAN(id), true); const basic = await hf.bot.requestHandler.request("GET", APIEndpoints.GUILD_BASIC(id), true);
if (clan) sources.clan = true; if (basic) sources.basic = true;
} catch { } catch {
// noop // noop
} }