Files
xiao/commands/random-res/pun.js
T
2021-04-24 17:38:28 -04:00

42 lines
1.0 KiB
JavaScript

const Command = require('../../structures/Command');
const request = require('node-superfetch');
const { stripIndents } = require('common-tags');
const blacklistFlags = ['religious', 'racist', 'sexist'];
const nsfw = ['nsfw', 'explicit'];
module.exports = class PunCommand extends Command {
constructor(client) {
super(client, {
name: 'pun',
group: 'random-res',
memberName: 'pun',
description: 'Responds with a random pun.',
credit: [
{
name: 'JokeAPI',
url: 'https://v2.jokeapi.dev/',
reason: 'API'
}
]
});
}
async run(msg) {
const blacklist = msg.channel.nsfw ? blacklistFlags : blacklistFlags.concat(nsfw);
try {
const { body } = await request
.get('https://v2.jokeapi.dev/joke/Pun')
.query({ blacklistFlags: blacklist.join(',') });
if (body.type === 'twopart') {
return msg.say(stripIndents`
${body.setup}
${body.delivery}
`);
}
return msg.say(body.joke);
} catch (err) {
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
}
}
};