Kürzlich hatte ich eine Idee für einen Slack Bot, der filtern würde, was ein Benutzer sagt. I.E User sagt (ein schlechtes Wort). PFBot würde diese Nachricht sehen und das Wort in "@ #% $ &" ändern, je nachdem wie lange das Wort ist.Entwickeln mit NodeJS-Code und SlackAPI zum Erstellen von PFBot
Jetzt bin ich ziemlich neu, aber ich wusste, was passieren musste.
- Der Bot müsste die Nachricht lesen.
- Der Bot würde diese Nachricht mit einer Liste schlechter Wörter vergleichen.
- Wenn der Bot einen findet, wird die Nachricht gefiltert. (Drehen Sie das Wort in „@ #% $“.
- Die neue Nachricht mit gefiltertem Worten würde als dieser Benutzer Dritten zugänglich gemacht werden.
ich arbeite daran begonnen, aber da ich bin mit dem Slack-API und NodeJS ich treffe einen rode Block und ich habe keine Ahnung, wie um es arbeitet
Mein erstes spezifisches Problem ist:.. ich kann nicht einen Weg für die Bot finden sie eine neue Nachricht im Chat geschrieben lesen
Hier ist mein Code: https://github.com/wiredbrother/Slack-PFBot Sie werden interessiert sein die Datei Skills/hears.js. Dort passiert die Magie. Oder schau einfach hier>
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)
});
};
Ich fand auch ein Dienstprogramm online für NodeJS, das Wörter filtert. Das ist im Profanity-Filter-Ordner. Sie würden sich für Profanity-Filter/lib/filter.js interessieren.
Ich würde gerne einige Hinweise auf diese als ein neuer Coder.
Vielen Dank für einen Hinweis, den Sie geben können!
~ wiredbrother
Vielen Dank für Ihre Antwort. Was den Teil der Obszönitäten anbetrifft, dachte ich nicht daran, diese Nachricht zu aktualisieren, sondern sie zu löschen und sie dann mit dem gefilterten Inhalt als Benutzer erneut zu veröffentlichen. Das würde diesen Teil der Slack-API https://api.slack.com/methods/chat verwenden.postMessage und post als Benutzer. Obwohl ich keine Ahnung habe, wie ich das in meinen Code einbauen kann ... Vielen Dank für Ihre Hilfe bis jetzt! – wiredbrother
np. Leider ist es nicht wirklich möglich, eine Nachricht als ein anderer Benutzer mit der Slack API neu zu veröffentlichen. Sie können den Nutzernamen und das Symbol "fälschen", aber es wird immer noch das "App" -Tag neben der Nachricht angezeigt, um anzuzeigen, dass es von einem Bot stammt. –
Nun, könnte ich es machen, wo es die Nachricht löscht und sendet eine ätherische Nachricht, die besagt, dass ein schlechtes Wort drin war und sie diese Nachricht nicht posten können? – wiredbrother