最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

使用NodeJS代码和SlackAPI进行开发以创建PFBot

运维笔记admin10浏览0评论

使用NodeJS代码和SlackAPI进行开发以创建PFBot

使用NodeJS代码和SlackAPI进行开发以创建PFBot

最近我有一个关于Slack Bot的想法,它可以过滤用户所说的内容。 I.E用户说(一个坏词)。 PFBot会看到该消息,并根据该单词的长度将单词更改为“@#%$&”。

现在我对此很新,但我知道需要发生什么。

  1. 机器人需要阅读消息。
  2. 机器人会将该消息与坏词列表进行比较。
  3. 如果机器人找到一个,则过滤消息。 (把这个词改成“@#%$”。
  4. 带有过滤后的单词的新邮件将被重新发布为该用户。

我开始研究它,但由于我是Slack API和NodeJS的新手,我遇到了一个rode块,我不知道如何让它工作。

我的第一个具体问题是:我找不到让Bot读取聊天中发布的新消息的方法。

这是我的代码: / 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感兴趣。

作为一个新的编码器,我会喜欢这方面的指导。

感谢您提供任何建议!

〜有线的兄弟

回答如下:

获取新消息

要获取新消息,您需要为机器人启用events。一旦启用,您的机器人将自动接收每条新消息,该消息将发送到您的机器人用户所属的频道。

我自己从未使用过botkit,但显然你可以查看文档here(#6),了解如何为botkit启用事件。

消除亵渎

对我来说,改变来自其他用户的消息是不可能的。有chat.udpate,它更新消息。但这只适用于您自己的消息。

相反,您可以使用chat.delete删除其他用户的消息,其中包含亵渎(并告知用户有关他的违规行为的直接消息)。

发布评论

评论列表(0)

  1. 暂无评论