最近我有一个关于Slack Bot的想法,它可以过滤用户说的内容。 I.E用户说(一个坏词)。 PFBot会看到该消息并将单词更改为" @#%$&"取决于单词的长度。
现在我对此很新,但我知道需要做些什么。
我开始研究它,但由于我是Slack API和NodeJS的新手,我遇到了一个rode块,我不知道如何让它工作。
我的第一个具体问题是:我无法找到Bot阅读聊天中发布的新消息的方法。
以下是我的代码:https://github.com/wiredbrother/Slack-PFBot 您将对Skills / hears.js文件感兴趣。这就是魔术发生的地方。或者只是看这里>
var fs = require('fs');
var path = require('path');
var readStream = fs.createReadStream(path.join(__dirname,
'../profanity-filter') + '/swears.txt', 'utf8');
var data = '';
readStream.on('data', function(chunk) {
data += chunk;
}).on('end', function() {
console.log(data);
});
module.exports = function(controller) {
controller.hears(['^hello$'], 'direct_message,direct_mention', function(bot, message) {
bot.reply(message, "Hi there, you're on workspace: " + message.team)
});
controller.hears([data], 'direct_message,direct_mention', function(bot, message) {
var filter = require('../profanity-filter/lib/filter.js');
filter.setReplacementMethod('grawlix');
filter.setGrawlixChars(['!', '@', '#', '$', '%', '&']);
var thing = filter.clean(data);
bot.reply(message, "The bad word is now: " + thing)
});
};
我还在网上为NodeJS找到了一个过滤单词的实用工具。那是在Profanity-Filter文件夹中。 您将对Profanity-Filter / lib / filter.js。
感兴趣作为一名新的编码员,我希望得到一些指导。
感谢您提供任何建议!
~wireblebrother
答案 0 :(得分:0)
获取新讯息
要获取新消息,您需要为机器人启用events。一旦启用,您的机器人将自动接收每条新消息,该消息将发送到您的机器人用户所属的频道。
我自己从未使用过botkit,但显然你可以查看文档here(#6),了解如何为botkit启用事件。
删除亵渎性
对我来说,无法改变来自其他用户的消息。有chat.udpate,用于更新消息。但这只适用于您自己的消息。
相反,您可以使用chat.delete删除包含亵渎性内容的其他用户的邮件(并告知用户有关其违规行为的直接消息)。