Cleverbot

This commit is contained in:
Daniel Odendahl Jr
2017-05-23 20:19:25 +00:00
parent 3a080c83fe
commit f4d77a3a69
3 changed files with 41 additions and 30 deletions
-18
View File
@@ -76,24 +76,6 @@ client.on('message', async (msg) => {
if (msg.channel.permissionsFor(client.user).has('MANAGE_MESSAGES')) msg.delete();
else msg.channel.send('Message could not be deleted, missing the `Manage Messages` permission.');
return msg.reply('Invites are prohibited from being posted here.');
} else
if (msg.isMentioned(client.user)) {
if (msg.author.bot) return;
if (msg.channel.type !== 'dm') {
if (!msg.channel.permissionsFor(client.user).has('SEND_MESSAGES')) return;
const role = msg.guild.settings.get('singleRole');
if (role && !msg.member.roles.has(role)) return;
}
msg.channel.startTyping();
const message = msg.content.replace(client.mentionRegex, '');
try {
const { response } = await client.cleverbot.ask(message);
return msg.reply(response)
.then(() => msg.channel.stopTyping());
} catch (err) {
return msg.reply(`${err.name}: ${err.message}`)
.then(() => msg.channel.stopTyping());
}
} else return;
});
+41
View File
@@ -0,0 +1,41 @@
const { Command } = require('discord.js-commando');
const Cleverbot = require('cleverio');
const { CLEVS_KEY, CLEVS_USER, CLEVS_NICK } = process.env;
module.exports = class CleverbotCommand extends Command {
constructor(client) {
super(client, {
name: 'cleverbot',
aliases: ['clevs', 'chat'],
group: 'random',
memberName: 'cleverbot',
description: 'Talk to Cleverbot!',
args: [
{
key: 'text',
prompt: 'What do you want to say to Cleverbot?',
type: 'string'
}
]
});
this.clevs = new Cleverbot({
key: CLEVS_KEY,
user: CLEVS_USER,
nick: CLEVS_NICK
});
this.clevs.create().then(res => console.log(res));
}
async run(msg, args) {
const { text } = args;
msg.channel.startTyping();
try {
const { response } = await this.clevs.ask(text);
return msg.reply(response)
.then(() => msg.channel.stopTyping());
} catch (err) {
return msg.say(`${err.name}: ${err.message}`);
}
}
};
-12
View File
@@ -1,24 +1,12 @@
const { Client } = require('discord.js-commando');
const Database = require('./PostgreSQL');
const Cleverbot = require('cleverio');
const { CLEVS_KEY, CLEVS_USER, CLEVS_NICK } = process.env;
class CommandoClient extends Client {
constructor(options) {
super(options);
this.database = Database.db;
this.cleverbot = new Cleverbot({
key: CLEVS_KEY,
user: CLEVS_USER,
nick: CLEVS_NICK
});
Database.start();
this.cleverbot.create();
}
get mentionRegex() {
return new RegExp(`<!?@${this.user.id}>`, 'g');
}
}