node package manager
Stop wasting time. Easily manage code sharing in your team. Create a free org »

discord-spoiler-bot

Discord Spoiler Bot

npm npm npm dependencies

A Discord bot that replaces spoiler messages with GIFs that reveal content on hover.

Demo

Single line

Discord Spoiler Bot in action

Multi-line

Discord Spoiler Bot with multi-line comments

Marking someone else's message as a spoiler

Discord Spoiler Bot marking other messages as spoilers

Documentation

Check Discord Spoiler Bot Wiki on GitHub for full documentation. See section below for the quick start guide.

Quick start

If you know what you're doing, you can jump right in. First, make sure you have all prerequisites for node-canvas installed. Then add Discord Spoiler Bot to your npm project:

$ npm install discord-spoiler-bot --save

Now get a secret token for your bot and make sure the bot has permission to read, write and delete messages as well as upload files. 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();

Launch your bot using Node.js:

$ node index.js

And you're done! Write messages of format <topic>:spoiler:<content> to mark your own messages as spoilers, e.g.:

FMA:spoiler:Elric brothers are alchemists!

To mark someone else's messages, use <message-id>:spoils:<topic>, but you will have to configure permissions first. See Configuration section.

Already have a bot running on discord.js or discord.io? You can supply an instance of Client instead of a token, see Usage section for examples.

Reporting bugs

Please create an issue thread here. I will try to reply and resolve issues to the best of my ability.

Known issues

  • It's been reported that GIFs play continuously on mobile devices instead of stopping after revealing the spoiler. Sadly this is a limitation of the mobile Discord app and I can't do anything about it.
  • On Windows, node-canvas library does not support true type fonts so Discord Spoiler Bot uses the default node-canvas font instead of Source Sans Pro Regular.

Contributing

I believe this bot is feature-complete, and from now on will most likely only fix bugs. Before adding a new feature to this bot and creating a pull request, make sure said feature makes sense in the context of Discord Spoiler Bot.

Make sure npm test and npm run lint return no errors before making a pull request, otherwise I might reject it. npm run test-no-delete is available for your convenience, running this command will make sure that GIFs produced during testing are not removed so you can inspect them for any artifacts.