Merge pull request #8 from gractwo/heisenberg
member count api - discordjs cache bypass
This commit is contained in:
30
src/index.ts
30
src/index.ts
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user