Merge pull request #8 from gractwo/heisenberg

member count api - discordjs cache bypass
This commit is contained in:
Stanisław Dzioba
2022-12-20 23:57:23 +01:00
committed by GitHub

View File

@@ -6,25 +6,45 @@ import config from './cfg.json';
dotenv.config(); dotenv.config();
const client = new DiscordJS.Client({ const client = new DiscordJS.Client({
intents: [DiscordJS.GatewayIntentBits.Guilds], intents: [
DiscordJS.GatewayIntentBits.Guilds,
DiscordJS.GatewayIntentBits.GuildMembers,
],
}); });
const app = express(); const app = express();
const port = process.env.PORT || config.api.fallbackPort; const port = process.env.PORT || config.api.fallbackPort;
let memberCount: number | null, previousCount: number | null;
app.get('/', (req, res) => { app.get('/', (req, res) => {
res.sendStatus(200); res.sendStatus(200);
}); });
app.get('/members', (req, res) => { app.get('/members', (req, res) => {
res.send( res
client.guilds.resolve(config.api.memberCountGuildId)?.memberCount.toString() .status(memberCount ? 200 : 500)
); .send(memberCount ? memberCount.toString() : 'Server Error');
}); });
client.on('guildMemberAdd', () => {
if (memberCount) memberCount++;
});
client.on('guildMemberRemove', () => {
if (memberCount) memberCount--;
});
client.on('ready', () => { client.on('ready', () => {
console.log(`BOT: Now logged in as ${client.user?.tag}.`); console.log(`BOT: Now logged in as ${client.user?.tag}.`);
memberCount =
client.guilds.resolve(config.api.memberCountGuildId)?.memberCount || null;
setInterval(() => {
if (previousCount != memberCount) {
console.log(
`API/BOT: Gractwo memberCount is ${`now ${memberCount}` || 'unset'}.`
);
}
previousCount = memberCount;
}, 5 * 1000);
}); });
const api = app.listen(port, () => { app.listen(port, () => {
console.log(`API: Now listening on :${port}.`); console.log(`API: Now listening on :${port}.`);
}); });
client.login(process.env.TOKEN); client.login(process.env.TOKEN);