Saltar al contenido
Dialova

Documentación IRC · Intermedio

Entender y diseñar un bot IRC

Un bot IRC es un programa conectado a la red como un cliente. Puede escuchar eventos, responder a comandos o animar un canal. Su fiabilidad depende sobre todo de cómo procesa el protocolo, los permisos y el ritmo de envío.

El equipo de Dialova · Verificado el

El ciclo de un bot #

  1. Abrir una conexión TLS y comprobar el certificado.
  2. Negociar CAP y autenticar la cuenta si la política lo exige.
  3. Declarar la identidad IRC y esperar al final del registro.
  4. Entrar en los canales autorizados y procesar mensajes, errores y eventos.
  5. Responder a PING, limitar los envíos y prever una reconexión gradual.
Fragmento de una sesión ya registrada y autorizada
S: PING :jeton-123
C: PONG :jeton-123
S: :Alice!alice@cloak.example PRIVMSG #atelier :!bonjour
C: PRIVMSG #atelier :Bonjour Alice !

Este fragmento ilustra el flujo; no es un programa completo para ejecutar. Una biblioteca IRC mantenida puede encargarse del transporte y la gramática, en lugar de suponer que cada lectura de red recibe una línea entera.

Separar protocolo, reglas y acciones #

ParteResponsabilidad
Transporte y analizadorTLS, bytes, CRLF, mensajes parciales y límites.
Estado IRCRegistro, capacidades, canales, identidad y cambios.
Lógica del botReconocer una petición, comprobar sus condiciones y generar una intención de acción.
Cola de salidaLimitar el ritmo, conservar el orden y evitar envíos repetidos al reconectar.

No confiar solo en el apodo #

Un participante puede cambiar de apodo o imitar una sintaxis. Para una acción sensible, utiliza una identidad acreditada por el servidor cuando esté disponible y comprueba después los permisos de esa acción. No des permisos de operador a un bot de juegos solo para que pueda hablar.

Los textos recibidos no son entradas fiables: no los pases a un shell, a una consulta construida concatenando texto ni a un ejecutor de código. Los secretos de conexión deben permanecer en una configuración privada, no en un repositorio ni en una respuesta del bot.

Evitar flood y bucles #

La red fija sus límites: no existe una frecuencia de envío universalmente segura. Reacciona a los errores, agrupa las salidas cuando tenga sentido y limita las acciones por usuario y canal. La reconexión debe aplicar una espera gradual, no un bucle inmediato.

No respondas automáticamente a NOTICE ni ejecutes un comando antiguo del usuario al reproducir el historial. Con echo-message puede volver tu propia salida: distínguela de las solicitudes entrantes.

Bobot en Dialova #

Bobot anima, entre otras cosas, los juegos de canal de Dialova. Es distinto de los juegos gráficos del sitio y de las cuentas de sus miembros. Este ejemplo muestra que un cliente automatizado puede enriquecer una comunidad sin exigir un protocolo de chat propietario.

Fuentes y verificación

Los ejemplos usan apodos y dominios ficticios, salvo los puntos de conexión expresamente documentados. Las extensiones y los ajustes específicos de una red se indican en el texto.