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

时间:2017-12-26 19:07:08

标签: javascript node.js slack-api

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

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

  1. 机器人需要阅读消息。
  2. 机器人会将该消息与坏词列表进行比较。
  3. 如果机器人找到一个,则过滤消息。 (把这个词改成" @#%$"。
  4. 带有已过滤字词的新邮件将重新发布为该用户。
  5. 我开始研究它,但由于我是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

1 个答案:

答案 0 :(得分:0)

获取新讯息

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

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

删除亵渎性

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

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