UNPKG

dspamdetector

Version:

Detect spam in a message.

151 lines (132 loc) 5.87 kB
![Logo](https://i.imgur.com/kIk6lO3.png) Un npm para detectar mensajes de spam totalmente configurable. ![Creador](https://raster.shields.io/static/v1?label=Creador&message=Seyron#5532&color=RED?style=flat&logo=appveyor) ## 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***