npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

watchcat.js

v1.0.1

Published

A powerful NPM module for automoderation and spam prevention in Discord servers.

Downloads

8

Readme

Watchcat - Discord Auto-Moderation

Watchcat es un módulo de Node.js que proporciona funcionalidades de auto-moderación para bots de Discord. Con Watchcat, puedes mantener un ambiente seguro y limpio en tu servidor de Discord mediante la detección y eliminación automática de contenido inapropiado, spam, mensajes duplicados y enlaces no deseados.

Changelog

Versión: 1.0.1

  1. Optimización Asincrónica
    • El método checkSpam() ahora es asincrónico (async), mejorando el rendimiento y la velocidad de respuesta del Watchcat ante mensajes no deseados.
  2. Baneo con Eliminación Automática
    • Los baneos por spam y mensajes duplicados ahora incluyen una duración para eliminar automáticamente los mensajes ofensivos, manteniendo el servidor limpio sin intervención manual.
  3. Opción de Desactivar Baneos
    • Se ha agregado una nueva propiedad disableBan. Por defecto viene en true, es decir, no baneará a los usuarios.
  4. Optimización de Caché
    • El Watchcat ahora aprovecha la caché para realizar baneos y eliminar mensajes, reduciendo la carga en el servidor y mejorando la velocidad de ejecución.
  5. Mejoras en el Seguimiento de Spam
    • Se han realizado mejoras en el seguimiento de spam, lo que aumenta la precisión y eficiencia en la detección de comportamientos no deseados.

Métodos y Características

  • Filtrado de Palabras: Watchcat puede detectar y eliminar mensajes que contengan palabras específicas definidas por el usuario para mantener un lenguaje apropiado en el servidor.

    • checkMessage(message): Verifica si el mensaje contiene alguna de las palabras filtradas. Si es así, elimina el mensaje.
  • Detección de Spam: Con la función de seguimiento de spam, Watchcat puede imponer una sanción automática a los miembros que envíen mensajes repetitivos en un corto período de tiempo.

    • checkSpam(userId, guild, message): Realiza un seguimiento de los mensajes enviados por un usuario y aplica una sanción de ban si supera el número máximo de mensajes permitidos en el tiempo establecido.
  • Mensajes Duplicados: Watchcat rastrea los mensajes duplicados y aplica acciones de moderación a los miembros que repitan el mismo mensaje varias veces.

    • duplicateMessageFilter(message): Rastrea los mensajes duplicados enviados por un usuario y aplica una sanción de ban si supera el número máximo de mensajes duplicados permitidos en el tiempo establecido.
  • Anti-Enlaces: Watchcat detecta los enlaces en los mensajes y puede eliminarlos, evitando así la divulgación de enlaces no deseados en el servidor.

    • antiLink(message): Detecta los enlaces en el mensaje y elimina el mensaje, aplicando una sanción de ban al usuario que envió el enlace.

Propiedades

  • filterWords: Un array de palabras que se utilizarán para filtrar mensajes. Los mensajes que contengan alguna de estas palabras serán eliminados.

  • maxMessages: Número máximo de mensajes que un usuario puede enviar dentro del timeFrame antes de ser sancionado por spam.

  • timeFrame: Período de tiempo en segundos durante el cual se contabilizarán los mensajes del usuario para detectar spam.

  • duplicateMsgMax: Número máximo de mensajes duplicados permitidos antes de que se aplique la sanción por enviar mensajes duplicados.

  • duplicateMsgTime: Período de tiempo en segundos durante el cual se contabilizarán los mensajes duplicados del usuario.

  • spamBanReason: Mensaje de razón para la sanción de ban en caso de spam. Este mensaje puede ser personalizado por el usuario.

  • duplicateMsgBanReason: Mensaje de razón para la sanción de ban en caso de mensajes duplicados. Este mensaje puede ser personalizado por el usuario.

  • linkBanReason: Mensaje de razón para la sanción de ban en caso de envío de enlaces. Este mensaje puede ser personalizado por el usuario.

  • NEW! disableBan: Permite habilitar o deshabilitar el baneo automático. Valor predeterminado: true (desactivado).

Modo de Uso

Para usar Watchcat en tu bot de Discord, sigue estos pasos:

  1. Importa la clase Watchcat en tu bot de Discord:
const { Watchcat } = require('watchcat.js');
  1. Crea una instancia de Watchcat con las opciones personalizadas que desees:
const autoModeration = new Watchcat({
  filterWords: ['hi', 'bye', 'bad'],
  maxMessages: 5,
  timeFrame: 60,
  duplicateMsgMax: 3,
  duplicateMsgTime: 8,
  spamBanReason: 'Detected spamming',
  duplicateMsgBanReason: 'Sending duplicate messages',
  linkBanReason: 'Sending links',
  disableBan: false
});
  1. En el evento de mensaje de tu bot de Discord, llama a los métodos relevantes de Watchcat para aplicar la moderación:
client.on('messageCreate', (message) => {
  autoModeration.checkMessage(message);
  autoModeration.checkSpam(message.author.id, message.guild, message);
  autoModeration.duplicateMessageFilter(message);
  autoModeration.antiLink(message);

  // ... 
});

Ejemplos

  • Filtrado de Palabras:
const autoModeration = new Watchcat({
  filterWords: ['spam', 'badword', 'inappropriate'],
});

client.on('messageCreate', (message) => {
  autoModeration.checkMessage(message);
});
  • Detección de Spam:
const autoModeration = new Watchcat({
  maxMessages: 3,
  timeFrame: 10,
});

client.on('messageCreate', (message) => {
  autoModeration.checkSpam(message.author.id, message.guild, message);
});
  • Mensajes Duplicados:
const autoModeration = new Watchcat({
  duplicateMsgMax: 2,
  duplicateMsgTime: 5,
});

client.on('messageCreate', (message) => {
  autoModeration.duplicateMessageFilter(message);
});
  • Anti-Enlaces:
const autoModeration = new Watchcat();

client.on('messageCreate', (message) => {
  autoModeration.antiLink(message);
});

Instalación

Para comenzar a utilizar el paquete Watchcat, instálalo a través de npm:

npm install watchcat.js

Para obtener más información sobre cómo utilizar el paquete y explorar todas sus funciones, háblame a mi Discord jainagam3r45.