
WagMedia Bot
El WagMedia Communications Bot es un bot de Discord diseñado específicamente para optimizar las iniciativas de gestión de contenido en el ecosistema de Polkadot. Desarrollado para la comunidad WagMedia, este bot monitorea de manera eficiente los canales de Discord configurados, registrando publicaciones y reacciones válidas para poblar una base de datos. Dicha base de datos constituye la infraestructura principal para WagMedia Com Web, la plataforma centralizada para la difusión de contenido.
Características de WagMedia Bot
-
Monitoreo Avanzado de Discord:
Construido usando discord.js, WagMedia Bot rastrea mensajes y reacciones en canales específicos. Esto permite un monitoreo fluido de las interacciones de la comunidad y una efectiva curación de contenido. -
Integración con Base de Datos Prisma:
En el núcleo de la funcionalidad de WagMedia Bot se encuentra su sólida base de datos, potenciada por Prisma. Esta integración garantiza un almacenamiento y recuperación confiables de datos, soportando operaciones de alto rendimiento del bot. -
Comandos de Aplicación con Discord-FP:
El bot aprovecha Discord-FP para incorporar comandos de aplicación intuitivos y eficientes, brindando una experiencia amigable tanto para administradores del servidor como para los usuarios. -
Base en TypeScript:
WagMedia Bot está construido con TypeScript, lo que proporciona una base de código sólida, escalable y fácil de mantener. Con herramientas como esbuild y tsx, el proceso de desarrollo es fluido y eficiente.
Instrucciones Generales de Configuración
Habilitar Modo Desarrollador en Discord
Para empezar, los usuarios deben habilitar el Modo Desarrollador en Discord desde User Settings » Advanced. Esto permite el acceso a los IDs de servidor necesarios para configurar el bot.
Creación y Configuración del Servidor
Si aún no existe un servidor, créalo y guarda su guildId como DISCORD_GUILD_ID
. Además, deben configurarse adecuadamente los permisos de rol para garantizar que el bot pueda registrar mensajes e interactuar con los canales monitoreados.
Creación del Bot
Accede al Portal de Desarrolladores de Discord y crea una nueva aplicación. A partir de ahí:
- Agrega un bot a la aplicación y copia el token para la variable de entorno
DISCORD_BOT_TOKEN
. - Configura los permisos del bot a 414464683072 para un funcionamiento óptimo.
Desarrollo Local
Clonar el Repositorio
Para iniciar el desarrollo local, clona el repositorio de WagMedia Bot en GitHub:
Configuración Inicial
Tras clonar el repositorio:
- Instala las dependencias con
npm install
. - Copia el archivo
.env.sample
a.env
y completa las variables necesarias, como las cadenas de conexión a la base de datos y la configuración de Discord. - Ajusta configuraciones adicionales en
config.ts
, incluyendo opciones de registro (logging) y seeding de la base de datos.
Configuración de la Base de Datos
WagMedia Bot utiliza una base de datos PostgreSQL administrada con Prisma. Para actualizar el esquema de la base de datos tras realizar modificaciones, ejecuta:
npx prisma migrate dev
Ejecución del Bot
Para ejecutar el bot en modo desarrollo:
npm run dev
Para entornos similares a producción, utiliza:
npm run start
Sembrado de la Base de Datos (Seeding)
El seeding de la base de datos es esencial para agregar o actualizar elementos monitoreados, como emojis que representan pagos. Usa:
npx prisma db seed
Despliegue en Producción
La primera instancia de producción del bot está desplegada en Heroku, aunque puede ejecutarse en cualquier servidor. Heroku gestiona compilaciones y despliegues automáticos desde la rama principal del repositorio. Asegúrate de configurar correctamente las variables de entorno en Heroku para un funcionamiento continuo. Se recomienda a los desarrolladores probar en una rama de staging antes de fusionar y desplegar actualizaciones a producción.