BLAPI - the BotListAPI



BLAPI is a fully typed package to handle posting your discord bot stats to botlists.
It's intended to be used with discord.js v13 or v14, though you can also manually post your stats.
BLAPI fully supports external and discord.js internal sharding with and without the use of the BotBlock API.
Installation
NPM (recommended)
npm i blapi
Yarn
yarn add blapi
Usage
The list of all supported bot lists and their respective names for the apiKeys object are listed below
Import the lib via ES6 or commonJS modules
import * as blapi from "blapi";
import { handle } from "blapi";
const blapi = require("blapi");
With discord.js (version 13.x or 14.x)
import Discord from "discord.js";
const bot = new Discord.Client();
blapi.handle(bot, apiKeys, 60);
Manually, without need of Discord libraries
blapi.manualPost(guildCount, botID, apiKeys[, shardID, shardCount[, shardsArray]]);
Logging Options
blapi.setLogging({
logLevel: LogLevel.All
});
blapi.setLogging({
logger: yourCustomLogger
})
Turn off the use of the BotBlock API
blapi.setBotblock(false);
apiKeys
The JSON object which includes all the API keys should look like this:
{
"bot list domain": "API key for that bot list",
"bot list domain": "API key for that bot list"
}
an example would be:
{
"bots.ondiscord.xyz": "dsag38_auth_token_fda6gs",
"discordbots.group": "qos56a_auth_token_gfd8g6"
}
Lists
BLAPI automatically supports posting to all lists that are listed on botblock. For the rare case that their API is down, BLAPI has an integrated fallback list. This list is kept somewhat up to date inside the repository, but once BLAPI is running in your bot, it will update the internal fallback on a daily basis.
Supported legacy Ids are supported in a similar fashion. BLAPI supports all legacy IDs listed on botblock. The fallback legacy IDs can be found here, and they are also internally updated on a daily basis once you have BLAPI up and running.
If at any time you find other bot lists have added an API to post your guildcount, let us know on this repo or by contacting T0TProduction#0001 on Discord. In general, if a list is not listed on BotBlock, the best way to get it added is to directly join the BotBlock Discord server and request it there.
Development
To work on BLAPI, install the node version specified in .nvmrc.
If you are using nvm on a unix based system, this can be done quickly by using nvm use
and if the version is not installed, nvm install
.
Install all the dependencies following the package-lock via npm ci
.
This repo enforces eslint rules which are included in the installation.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!