2017-12-26 11 views
0

最近、私はユーザーが言うことをフィルタリングするSlack Botのアイディアを持っていました。 I.Eユーザは(悪い言葉を)言う。 PFBotはそのメッセージを見て、単語の長さに応じて単語を "@#%$ &"に変更します。NodeJSコードとSlackAPIで開発してPFBotを作成する

今私はこれについてかなり新しいですが、何が起こる必要があるか分かっていました。

  1. ボットはメッセージを読む必要があります。
  2. ボットはそのメッセージを悪い単語のリストと比較します。
  3. ボットが1つを検出した場合、メッセージはフィルタされます。 (「@#%$」に単語を回す。
  4. 新しいメッセージをフィルタリング言葉では、そのユーザとして転載されるだろう。

が、私はそれに仕事を始めたが、私はスラックAPIとNodeJSと新しいですので、私はRODEブロックをヒットし、私はそれが働いて取得する方法についての手掛かり全くない

私の最初の具体的な問題がある:。。私はボットがチャットに投稿新しいメッセージを読むための方法を見つけることができません

ここに私のコードです: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に興味があります。

私は新しいコーダーとしてこれに関するいくつかのガイダンスが大好きです。

アドバイスをいただきありがとうございます。

〜wiredbrother

答えて

0

取得新しいメッセージ

はあなたのボットのためを有効にする必要が新しいメッセージを取得します。一度あなたのボットを有効にすると、あなたのボットユーザーがメンバーになっているチャンネルに送信されるすべての新しいメッセージが自動的に受信されます。

私はボットキットを自分で使ったことはありませんが、ボットキットのイベントを有効にする方法については、here(#6)のドキュメントを参照してください。冒涜

を削除

私には知識が他のユーザからのメッセージを変更するには、ことはできません。メッセージを更新するchat.udpateがあります。しかしそれはあなたのメッセージのためだけに機能します。

chat.deleteという別のユーザーのメッセージを削除することができます。これには冒涜が含まれています(ユーザーにその嫌悪感についての直接のメッセージを通知する)。

+0

ありがとうございました。冒涜部分については、私はそのメッセージを更新するのではなく、それを削除し、フィルタリングされたコンテンツをユーザとして再投稿することを考えました。これは、スラックAPI https://api.slack.com/methods/chatのこの部分を使用します。postMessageとpostをユーザとして使用します。私はそれを私のコードにどのように組み込むのか分からないが... あなたの助けを今までにありがとう! – wiredbrother

+0

np。残念ながらSlack APIを使って別のユーザーとしてメッセージを再投稿することは実際には不可能です。ユーザー名とアイコンを「偽造」することはできますが、メッセージの横に「アプリ」タグが表示され、ボットからのものであることを示します。 –

+0

それはメッセージを削除してどこにそれを作ることができますか、それに悪い言葉があってそのメッセージを投稿できないという奇妙なメッセージを送りますか? – wiredbrother

関連する問題