Files
xiao/structures/BotList.js
T
Dragon Fire a334819db4 Clean-up
2021-05-18 19:56:45 -04:00

97 lines
2.7 KiB
JavaScript

const request = require('node-superfetch');
const {
TOP_GG_TOKEN,
BOTS_GG_TOKEN,
DISCORDBOTLIST_TOKEN,
CARBON_TOKEN,
BLIST_TOKEN
} = process.env;
module.exports = class BotList {
constructor(client) {
Object.defineProperty(this, 'client', { value: client });
}
async postTopGGStats() {
if (!TOP_GG_TOKEN) return null;
try {
const { body } = await request
.post(`https://top.gg/api/bots/${this.client.user.id}/stats`)
.set({ Authorization: TOP_GG_TOKEN })
.send({ server_count: this.client.guilds.cache.size });
this.client.logger.info('[TOP.GG] Posted stats.');
return body;
} catch (err) {
this.client.logger.error(`[TOP.GG] Failed to post stats:\n${err.stack}`);
return err;
}
}
async postBotsGGStats() {
if (!BOTS_GG_TOKEN) return null;
try {
const { body } = await request
.post(`https://discord.bots.gg/api/v1/bots/${this.client.user.id}/stats`)
.set({ Authorization: BOTS_GG_TOKEN })
.send({ guildCount: this.client.guilds.cache.size });
this.client.logger.info('[BOTS.GG] Posted stats.');
return body;
} catch (err) {
this.client.logger.error(`[BOTS.GG] Failed to post stats:\n${err.stack}`);
return err;
}
}
async postDiscordBotListStats() {
if (!DISCORDBOTLIST_TOKEN) return null;
try {
const { body } = await request
.post(`https://discordbotlist.com/api/v1/bots/${this.client.user.id}/stats`)
.set({ Authorization: DISCORDBOTLIST_TOKEN })
.send({
guilds: this.client.guilds.cache.size,
users: this.client.users.cache.size,
voice_connections: this.client.dispatchers.size
});
this.client.logger.info('[DISCORDBOTLIST] Posted stats.');
return body;
} catch (err) {
this.client.logger.error(`[DISCORDBOTLIST] Failed to post stats:\n${err.stack}`);
return err;
}
}
async postCarbonStats() {
if (!CARBON_TOKEN) return null;
try {
const { body } = await request
.post('https://www.carbonitex.net/discord/data/botdata.php')
.send({
key: CARBON_TOKEN,
servercount: this.client.guilds.cache.size,
botid: this.client.user.id
});
this.client.logger.info('[CARBON] Posted stats.');
return body;
} catch (err) {
this.client.logger.error(`[CARBON] Failed to post stats:\n${err.stack}`);
return err;
}
}
async postBlistStats() {
if (!BLIST_TOKEN) return null;
try {
const { body } = await request
.patch(`https://blist.xyz/api/v2/bot/${this.client.user.id}/stats/`)
.set({ Authorization: BLIST_TOKEN })
.send({ server_count: this.client.guilds.cache.size });
this.client.logger.info('[BLIST] Posted stats.');
return body;
} catch (err) {
this.client.logger.error(`[BLIST] Failed to post stats:\n${err.stack}`);
return err;
}
}
};