README
Un npm para detectar mensajes de spam totalmente configurable.
Instalación
Antes de instalarlo, debe tener instalado Node.js La instalación se realiza mediante el comando de instalación npm:
$ npm install dspamdetector --save
Características
- Mínimo de letras para que lo analice(si el mensaje no supera el limite nunca lo detectara como spam).
- Mínimo de palabras.
- Máximo de mayúsculas.
- Prohibir palabras
- Máximo de letras repetidas en relación a la longitud del texto.
- Detecta flood.
- Actualizaciones constantes.
Opciones
- minletters: Esta opcion es para determinar el numero de caracteres que debe tener el string para detectarlo (isSpam)
- minwords: Esta opcion es para determinar el numero de palabras que debe tener el string para detectarlo (isSpam)
- maxpercentcaps: Esta opcion es para determinar el porcentaje maximo de letras en mayusculas que puede haber (isSpam)
- maxpercentletters: Esta opcion es para determinar el porcentaje de caracteres maximo que puede haber en el string (isSpam)
- blockedwords: Esta opcion es para determinar las palabras que el detector determinara como spam directamente (isSpam)
- floodt: Esta opcion es para determinar el tiempo maximo en el que pueden mandar floodml mensajes (isFlood)
- floodml: Esta opcion es para determinar el numero de mensajes maximo que pueden mandar en floodt segundos (isFlood)
Ejemplos
Ejemplo 1: Petición básica
const spamdetector = require("dspamdetector")
let opciones = {
minletters:5,
minwords:0,
maxpercentcaps:15,
maxpercentletters:60,
blockedwords:[]
}
let detector = new spamdetector.detector(opciones)
let texto = "¿Hola que tal estás?"
console.log(detector.isSpam(texto)) // Si has puesto las mismas opciones, debería devolverte FALSE, es decir, que no es spam.
Estas usando Discord.js?
Ejemplo 1: Filtro Anti-Spam usando Discord.js
const Discord = require('discord.js');
const client = new Discord.Client();
const spamdetector = require("dspamdetector")
let opciones = {
minletters:5,
minwords:0,
maxpercentcaps:15,
maxpercentletters:60,
blockedwords:[]
}
let detector = new spamdetector.detector(opciones)
client.on("message", message => {
detector.isSpam(message.content).then(resultado => {
if(resultado == true) {
message.channel.send('Su mensaje ha sido considerado como spam.')
message.delete()
}
})
})
Ejemplo 2: Filtro Anti-Flood usando Discord.js
const Discord = require('discord.js');
const client = new Discord.Client();
const spamdetector = require("dspamdetector")
let opciones = {
floodt:60, //limite de segundos
floodml:3 //limite de mensajes
}
let detector = new spamdetector.detector(opciones)
client.on("message", message => {
//El 3 son el limite de mensajes y el 60 es cada cuanto tiempo por ejemplo si yo escribiera en menos de 1 minuto 3 mensajes el npm te dira que es spam
if(message.author.bot) return //esta linea no es obligatoria pero al no ponerla el bot entrara en bucle ya que detectara sus propios mensajes como spam o borrara los mensajes de otros bots si los manda muy rapido
detector.isFlood(message.author.id,message.guild.id,message.channel.id).then(resultado => {
if(resultado == true) {
message.channel.send('Su mensaje ha sido considerado como flood.')
message.delete()
}
})
})
setOptions
Esta función sirve para cuando te equivocas poniendo las opciones o si quieres cambiarlas
const spamdetector = require("dspamdetector")
let detector = new spamdetector.detector() //Esto iniciaria el detector con las opciones por defecto
detector.setOptions({
minletters:2,
minwords:5,
maxpercentcaps:30,
maxpercentletters:80,
blockedwords:["hey"],
floodml:7,
floodt:120
}) // no recomiendo usar estas opciones, son solo un ejemplo
Aclaracion
Aunque en los ejemplos en las opciones no esten todas juntas puedes ponerlas todas juntas y solo tener un detector asi:
const Discord = require('discord.js');
const client = new Discord.Client();
const spamdetector = require("dspamdetector")
let opciones = {
minletters:5,
minwords:0,
maxpercentcaps:15,
maxpercentletters:60,
blockedwords:[],
floodt:60,
floodml:3
}
let detector = new spamdetector.detector(opciones)
client.on("message", message => {
if(message.author.bot) return
detector.isSpam(message.content).then(resultado => {
if(resultado == true) {
message.channel.send('Su mensaje ha sido considerado como spam.')
message.delete()
}
})
detector.isFlood(message.author.id,message.guild.id,message.channel.id).then(resultado => {
if(resultado == true) {
message.channel.send('Su mensaje ha sido considerado como flood.')
message.delete()
}
})
})
Creado por: Discord Safe