dspamdetector
Version:
Detect spam in a message.
151 lines (132 loc) • 5.87 kB
Markdown

Un npm para detectar mensajes de spam totalmente configurable.

## Instalación
Antes de instalarlo, debe tener instalado [Node.js](https://nodejs.org/en/download/)
La instalación se realiza mediante el [comando de instalación npm](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
```bash
$ 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
```js
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
```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
```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
```js
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:
```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:[],
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***