Documentazione IRC · Intermedio
Capire e progettare un bot IRC
Un bot IRC è un programma connesso alla rete come un client. Può ascoltare eventi, rispondere a comandi o animare un canale. La sua affidabilità dipende soprattutto dalla gestione del protocollo, dei permessi e della frequenza di invio.
Il team di Dialova · Verificato il
Il ciclo di un bot #
- Aprire una connessione TLS e verificare il certificato.
- Negoziare CAP e autenticare l’account se richiesto dalle regole.
- Dichiarare l’identità IRC e attendere la fine della registrazione.
- Entrare nei canali autorizzati e gestire messaggi, errori ed eventi.
- Rispondere ai PING, limitare gli invii e prevedere una riconnessione progressiva.
S: PING :jeton-123
C: PONG :jeton-123
S: :Alice!alice@cloak.example PRIVMSG #atelier :!bonjour
C: PRIVMSG #atelier :Bonjour Alice !Questo estratto illustra il flusso; non è un programma completo da eseguire. Una libreria IRC mantenuta può gestire trasporto e grammatica, anziché supporre che ogni lettura di rete riceva un’intera riga.
Separare protocollo, regole e azioni #
| Parte | Responsabilità |
|---|---|
| Trasporto e parser | TLS, byte, CRLF, messaggi parziali e limiti. |
| Stato IRC | Registrazione, capacità, canali, identità e cambiamenti. |
| Logica del bot | Riconoscere una richiesta, verificarne le condizioni e produrre un’intenzione d’azione. |
| Coda di uscita | Limitare la frequenza, mantenere l’ordine ed evitare invii ripetitivi alla riconnessione. |
Non fidarsi del solo nickname #
Un partecipante può cambiare nickname o imitare una sintassi. Per un’azione sensibile usa un’identità attestata dal server quando disponibile e poi verifica i permessi dell’azione. Non dare i diritti di operatore a un bot di gioco soltanto per permettergli di parlare.
I testi ricevuti sono input non affidabili: non passarli a una shell, a una query costruita per concatenazione o a un esecutore di codice. I segreti di connessione restano in una configurazione privata, non in un repository o in una risposta del bot.
Evitare flood e cicli di risposte #
La rete stabilisce i limiti: non esiste una frequenza di invio universalmente sicura. Gestisci gli errori, raggruppa gli output quando ha senso e limita le azioni per utente e canale. La riconnessione deve prevedere un’attesa progressiva, non un ciclo immediato.
Non rispondere automaticamente alle NOTICE e non eseguire un vecchio comando utente durante la riproduzione della cronologia. Con echo-message può tornare il tuo stesso output: distinguilo dalle richieste in arrivo.
Bobot su Dialova #
Bobot anima, tra l’altro, i giochi nei canali di Dialova. È distinto dai giochi grafici del sito e dagli account dei suoi utenti. Questo esempio mostra che un client automatizzato può arricchire una comunità senza richiedere un protocollo di chat proprietario.
Fonti e verifica
Gli esempi usano nickname e domini fittizi, tranne gli endpoint esplicitamente documentati. Le estensioni e le impostazioni specifiche di una rete sono indicate nel testo.
- Modern IRC — spécification du protocole client ↗Fonte della specifica · consultata il 2026-10-29
- IRCv3 — Client Capability Negotiation ↗Fonte della specifica · consultata il 2026-10-29
- IRCv3 — account-tag ↗Fonte della specifica · consultata il 2026-10-29
- IRCv3 — echo-message ↗Fonte della specifica · consultata il 2026-10-29