Compare commits

...

2 Commits

Author SHA1 Message Date
skinmaker1345
32369b0e91 fix: set updated_at with now() 2026-08-02 19:55:59 +09:00
skinmaker1345
8fb5c24421 feat: use updated_at field to determine whether the bot is online or not 2026-08-02 19:11:34 +09:00

View File

@ -68,6 +68,7 @@ async function getBot(id: string, topLevel = true): Promise<Bot> {
'bots.vanity', 'bots.vanity',
'bots.bg', 'bots.bg',
'bots.banner', 'bots.banner',
'bots.updated_at',
knex.raw('JSON_ARRAYAGG(owners_mapping.user_id) as owners'), knex.raw('JSON_ARRAYAGG(owners_mapping.user_id) as owners'),
]) ])
.leftJoin('owners_mapping', 'bots.id', 'owners_mapping.target_id') .leftJoin('owners_mapping', 'bots.id', 'owners_mapping.target_id')
@ -88,12 +89,12 @@ async function getBot(id: string, topLevel = true): Promise<Bot> {
.then((r) => r) .then((r) => r)
} }
const botMember = const botMember =
((await getMainGuild() (await getMainGuild()
?.members?.fetch(res.id) ?.members?.fetch(res.id)
.catch((e) => null)) ?? .catch((e) => null)) ??
((await getBotGuild() ((await getBotGuild()
?.members?.fetch(res.id) ?.members?.fetch(res.id)
.catch((e) => null))) as GuildMember) .catch((e) => null)) as GuildMember)
const name = discordBot.displayName const name = discordBot.displayName
res.flags = res.flags =
res.flags | res.flags |
@ -119,7 +120,9 @@ async function getBot(id: string, topLevel = true): Promise<Bot> {
: botMember.presence.status : botMember.presence.status
} }
} else { } else {
res.status = null const updatedAt = new Date(res.updated_at).getTime()
const diff = +new Date() - updatedAt
res.status = diff > 1000 * 60 * 60 * 48 ? 'offline' : 'online'
} }
delete res.trusted delete res.trusted
delete res.partnered delete res.partnered
@ -793,6 +796,7 @@ async function updateServer(id: string, servers: number, shards: number) {
.update({ .update({
servers: servers === undefined ? bot.servers : servers, servers: servers === undefined ? bot.servers : servers,
shards: shards === undefined ? bot.shards : shards, shards: shards === undefined ? bot.shards : shards,
updated_at: knex.fn.now(),
}) })
.where({ id }) .where({ id })
if (servers) { if (servers) {
@ -1175,6 +1179,7 @@ async function approveBotSubmission(id: string, date: number) {
enforcements: data.enforcements, enforcements: data.enforcements,
discord: data.discord, discord: data.discord,
token: sign({ id }), token: sign({ id }),
updated_at: knex.fn.now(),
}) })
updateOwners(id, [data.owner], 'bot') updateOwners(id, [data.owner], 'bot')
return true return true