diff --git a/utils/Query.ts b/utils/Query.ts index 1520f33..69ca5f9 100644 --- a/utils/Query.ts +++ b/utils/Query.ts @@ -1,7 +1,7 @@ import fetch from 'node-fetch' import { TLRU } from 'tlru' import DataLoader from 'dataloader' -import { ActivityType, GuildFeature, GuildMember, User as DiscordUser } from 'discord.js' +import { ActivityType, GuildFeature, GuildMember, User as DiscordUser, UserFlags } from 'discord.js' import { Bot, Server, User, ListType, List, TokenRegister, BotFlags, DiscordUserFlags, SubmittedBot, DiscordTokenInfo, ServerData, ServerFlags, RawGuild, Nullable } from '@types' import { botCategories, DiscordEnpoints, imageSafeHost, serverCategories, SpecialEndPoints, VOTE_COOLDOWN } from './Constants' @@ -49,17 +49,19 @@ async function getBot(id: string, topLevel=true):Promise { const discordBot = await DiscordBot.users.fetch(res[0].id).then(r=> r).catch(() => null) as DiscordUser if(!discordBot) return null const botMember = await getMainGuild()?.members?.fetch(res[0].id).catch(e=> e) as GuildMember - res[0].flags = res[0].flags | (discordBot.flags?.bitfield && DiscordUserFlags.VERIFIED_BOT ? BotFlags.verified : 0) | (res[0].trusted ? BotFlags.trusted : 0) | (res[0].partnered ? BotFlags.partnered : 0) + res[0].flags = res[0].flags | (discordBot.flags?.bitfield & DiscordUserFlags.VERIFIED_BOT ? BotFlags.verified : 0) | (res[0].trusted ? BotFlags.trusted : 0) | (res[0].partnered ? BotFlags.partnered : 0) res[0].tag = discordBot.discriminator res[0].avatar = discordBot.avatar res[0].name = discordBot.username res[0].category = JSON.parse(res[0].category) res[0].owners = JSON.parse(res[0].owners) if(botMember) { - if(botMember.presence === null) { + if(discordBot.flags.has(UserFlags.BotHTTPInteractions)) { + res[0].status = 'online' + } else if(!botMember.presence) { res[0].status = 'offline' } else { - res[0].status = botMember?.presence?.activities.find(r => r.type === ActivityType.Streaming) ? 'streaming' : botMember?.presence?.status || null + res[0].status = botMember.presence.activities.some(r => r.type === ActivityType.Streaming) ? 'streaming' : botMember.presence.status } } else { res[0].status = null