最近、私はユーザーが言うことをフィルタリングするSlack Botのアイディアを持っていました。 I.Eユーザは(悪い言葉を)言う。 PFBotはそのメッセージを見て、単語の長さに応じて単語を "@#%$ &"に変更します。NodeJSコードとSlackAPIで開発してPFBotを作成する
今私はこれについてかなり新しいですが、何が起こる必要があるか分かっていました。
- ボットはメッセージを読む必要があります。
- ボットはそのメッセージを悪い単語のリストと比較します。
- ボットが1つを検出した場合、メッセージはフィルタされます。 (「@#%$」に単語を回す。
- 新しいメッセージをフィルタリング言葉では、そのユーザとして転載されるだろう。
が、私はそれに仕事を始めたが、私はスラック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
ありがとうございました。冒涜部分については、私はそのメッセージを更新するのではなく、それを削除し、フィルタリングされたコンテンツをユーザとして再投稿することを考えました。これは、スラックAPI https://api.slack.com/methods/chatのこの部分を使用します。postMessageとpostをユーザとして使用します。私はそれを私のコードにどのように組み込むのか分からないが... あなたの助けを今までにありがとう! – wiredbrother
np。残念ながらSlack APIを使って別のユーザーとしてメッセージを再投稿することは実際には不可能です。ユーザー名とアイコンを「偽造」することはできますが、メッセージの横に「アプリ」タグが表示され、ボットからのものであることを示します。 –
それはメッセージを削除してどこにそれを作ることができますか、それに悪い言葉があってそのメッセージを投稿できないという奇妙なメッセージを送りますか? – wiredbrother