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 #
- Abrir una conexión TLS y comprobar el certificado.
- Negociar CAP y autenticar la cuenta si la política lo exige.
- Declarar la identidad IRC y esperar al final del registro.
- Entrar en los canales autorizados y procesar mensajes, errores y eventos.
- Responder a PING, limitar los envíos y prever una reconexión gradual.
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 #
| Parte | Responsabilidad |
|---|---|
| Transporte y analizador | TLS, bytes, CRLF, mensajes parciales y límites. |
| Estado IRC | Registro, capacidades, canales, identidad y cambios. |
| Lógica del bot | Reconocer una petición, comprobar sus condiciones y generar una intención de acción. |
| Cola de salida | Limitar 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.
- Modern IRC — spécification du protocole client ↗Fuente de la especificación · consultada el 2026-10-29
- IRCv3 — Client Capability Negotiation ↗Fuente de la especificación · consultada el 2026-10-29
- IRCv3 — account-tag ↗Fuente de la especificación · consultada el 2026-10-29
- IRCv3 — echo-message ↗Fuente de la especificación · consultada el 2026-10-29