-
Notifications
You must be signed in to change notification settings - Fork 19
Usage
This section will talk about basic usage of the bot and how you can configure some advanced features. For more information, see Configuration.
Create a file called index.js
and put the following inside:
'use strict';
const SpoilerBot = require('discord-spoiler-bot');
let config = {
token: 'you_secret_token_here',
};
let bot = new SpoilerBot(config);
bot.connect();
Note the config object, it is required for Discord Spoiler Bot to work. Once you save the file, you can run your bot using Node.js:
$ node index.js
By default, spoiler bot listens to all channels. If you want spoiler bot to only listen to a couple of specific channels, add a include
property to your config:
let config = {
token: 'you_secret_token_here',
// List of channel IDs to listen to
include: [
'241271400869003265',
'241512070854606848'
],
};
If instead you want the bot to listen to all channels but the ones you wish to exclude, add exclude
array to you config:
let config = {
token: 'you_secret_token_here',
// Bot will listen to all channels BUT the ones below
exclude: [
'241271400869003265',
'241512070854606848'
],
};
Note: You cannot specify both exclude
and include
at the same time.
When spoiler bot is enabled, you can mark someone else's messages are spoilers using <message-id>:spoils:<topic>
format. To allow everyone to mark someone else's messages are spoilers, set markAllowAll
to true:
let config = {
token: 'you_secret_token_here',
markAllowAll: true,
};
If you want to allow users with certain Roles attached to them, add markRoleIds
to your config. This should be an array of strings where each string represents the ID of a role user should have. To find out the role ID, go to server settings, and for role you're interested in check Allow anyone to @mention this role
. Then, in chat, type \@<role-name>
(e.g. if your name is called Moderator
type \@Moderator
). This will give you a string looking something like this: <@&285235614805262339>
. The integer part is the role ID that you want.
You can also specify users that can mark spoilers by placing user IDs in markUserIds
. If both markRoleIds
and markUserIds
, spoiler bot allows user to mark spoilers as long as they satisfy any of these conditions.
let config = {
token: 'you_secret_token_here',
// Bot will allow users with the following roles to mark spoilers
markRoleIds: [
'241271400869003265',
'241512070854606848'
],
// Bot will allow users with the following IDs to mark spoilers
markUserIds: [
'241271400869003265',
'241512070854606848'
],
};
By default, if the spoiler content is taking up more than 6 lines, it's trimmed to 6 lines an an ellipsis is inserted at the end of last string. You can increase (or decrease) this limit by setting maxLines
to an integer greater than zero. Below I set it to 20, which will result in a very long, hardly readable GIF.
let config = {
token: 'you_secret_token_here',
maxLines: 20,
};
This feature is already working and I will try to complete this section as soon as possible.
You can customise the appearance of spoiler GIFs by adding a gif
property to your config. For example, the following config will reproduce the default GIF appearance:
let config = {
token: 'secret_token_here',
gif: {
margin: 10,
width: 400,
lineHeight: 40,
placeholderText: '( Hover to reveal spoiler )',
fontSize: '13px',
colours: {
background: '#3c3f44',
stroke: '#b2ac94',
text: '#c0ba9e',
placeholder: '#8c8775',
}
},
};
If you leave out one of the GIF config properties the default will be used. I think I've picked the optimal values for margin, font size, width and line height so I'd recommend leaving them as-is.
If you follow the basic usage instructions above, spoiler bot will create a new Client
instance from discord.js library. If you already have an instance of Client
from discord.js or discord.io libraries running and want to avoid duplicating the bot, you can pass the existing instance as client
in the config object.
E.g. for discord.js:
'use strict';
const Discord = require('discord.js');
const SpoilerBot = require('discord-spoiler-bot');
let client = new Discord.Client();
let config = {
client: client,
};
let bot = new SpoilerBot(config);
client.login('your_token_here')
.then(() => bot.connect());
Or for discord.io:
'use strict';
const Discord = require('discord.io');
const SpoilerBot = require('discord-spoiler-bot');
let client = new Discord.Client({
autorun: true,
token: 'your_token_here'
});
let config = {
client: client,
};
let bot = new SpoilerBot(config);
bot.connect();