Documentation IRC · Intermédiaire
Comprendre et concevoir un bot IRC
Un bot IRC est un programme connecté au réseau comme un client. Il peut écouter des événements, répondre à des commandes ou animer un salon. Sa fiabilité dépend surtout du traitement du protocole, des droits et du rythme des envois.
Équipe Dialova · Vérifié le
Le cycle d’un bot #
- Ouvrir une connexion TLS et vérifier le certificat.
- Négocier CAP, puis authentifier le compte si la politique le demande.
- Déclarer l’identité IRC et attendre la fin de l’inscription.
- Rejoindre les salons autorisés et traiter messages, erreurs et événements.
- Répondre aux PING, limiter les envois et prévoir une reconnexion progressive.
S: PING :jeton-123
C: PONG :jeton-123
S: :Alice!alice@cloak.example PRIVMSG #atelier :!bonjour
C: PRIVMSG #atelier :Bonjour Alice !Cet extrait illustre le flux ; ce n’est pas un programme complet à exécuter. Une bibliothèque IRC maintenue peut gérer le transport et la grammaire, plutôt qu’une lecture réseau supposée recevoir une ligne entière à chaque appel.
Séparer protocole, règles et actions #
| Partie | Responsabilité |
|---|---|
| Transport et parseur | TLS, octets, CRLF, messages partiels, bornes. |
| État IRC | Inscription, capabilities, salons, identité et changements. |
| Logique du bot | Reconnaître une demande, vérifier ses conditions et produire une intention. |
| File de sortie | Limiter le débit, conserver l’ordre et éviter un envoi répétitif à la reconnexion. |
Ne pas faire confiance au seul pseudo #
Un participant peut changer de pseudo ou imiter une syntaxe. Pour une action sensible, utilisez une identité attestée par le serveur quand elle est disponible, puis vérifiez les autorisations de cette action. N’accordez pas les droits d’opérateur à un bot de jeu simplement pour lui permettre de parler.
Les textes reçus sont des entrées non fiables : ne les passez pas à un shell, à une requête construite par concaténation ou à un exécuteur de code. Les secrets de connexion restent dans une configuration privée, pas dans un dépôt ou une réponse du bot.
Éviter le flood et les boucles #
Le réseau fixe ses limites : il n’existe pas une cadence d’envoi universellement sûre. Répondez aux erreurs, regroupez les sorties lorsque cela a du sens et limitez les actions par utilisateur et salon. Une reconnexion doit avoir un délai progressif plutôt qu’une boucle immédiate.
Ne répondez pas automatiquement aux NOTICE et n’exécutez pas une ancienne commande utilisateur pendant un replay d’historique. Avec echo-message, votre propre sortie peut revenir : distinguez-la des demandes entrantes.
Bobot sur Dialova #
Bobot anime notamment les jeux de salon de Dialova. Il reste distinct des jeux graphiques du site et des comptes de ses membres. Cet exemple montre qu’un client automatisé peut enrichir une communauté sans exiger un protocole de discussion propriétaire.
Sources et vérification
Les exemples utilisent des pseudos et domaines fictifs, sauf les points de connexion explicitement documentés. Les extensions et réglages propres à un réseau sont signalés dans le texte.
- Modern IRC — spécification du protocole client ↗Source de spécification · consultée le 2026-10-29
- IRCv3 — Client Capability Negotiation ↗Source de spécification · consultée le 2026-10-29
- IRCv3 — account-tag ↗Source de spécification · consultée le 2026-10-29
- IRCv3 — echo-message ↗Source de spécification · consultée le 2026-10-29