Documentação IRC · Intermédio
Compreender e criar um bot IRC
Um bot IRC é um programa ligado à rede como um cliente. Pode ouvir eventos, responder a comandos ou animar um canal. A sua fiabilidade depende sobretudo do tratamento do protocolo, das permissões e do ritmo de envio.
A equipa do Dialova · Verificado em
O ciclo de um bot #
- Abrir uma ligação TLS e verificar o certificado.
- Negociar CAP e autenticar a conta se a política o exigir.
- Declarar a identidade IRC e esperar pelo fim do registo.
- Entrar nos canais autorizados e tratar mensagens, erros e eventos.
- Responder aos PING, limitar os envios e prever uma religação progressiva.
S: PING :jeton-123
C: PONG :jeton-123
S: :Alice!alice@cloak.example PRIVMSG #atelier :!bonjour
C: PRIVMSG #atelier :Bonjour Alice !Este excerto ilustra o fluxo; não é um programa completo para executar. Uma biblioteca IRC mantida pode tratar do transporte e da gramática, em vez de assumir que cada leitura de rede recebe uma linha inteira.
Separar protocolo, regras e ações #
| Parte | Responsabilidade |
|---|---|
| Transporte e analisador | TLS, bytes, CRLF, mensagens parciais e limites. |
| Estado IRC | Registo, capacidades, canais, identidade e alterações. |
| Lógica do bot | Reconhecer um pedido, verificar as condições e produzir uma intenção de ação. |
| Fila de saída | Limitar o ritmo, manter a ordem e evitar envios repetidos ao voltar a ligar. |
Não confiar apenas no pseudónimo #
Um participante pode mudar de pseudónimo ou imitar uma sintaxe. Para uma ação sensível, usa uma identidade atestada pelo servidor quando disponível e verifica depois as permissões dessa ação. Não dês permissões de operador a um bot de jogos só para que possa falar.
Os textos recebidos são entradas não fiáveis: não os passes para uma shell, uma consulta construída por concatenação nem um executor de código. Os segredos de ligação ficam numa configuração privada, não num repositório nem numa resposta do bot.
Evitar flood e ciclos #
A rede define os limites: não existe um ritmo de envio universalmente seguro. Reage aos erros, agrupa as saídas quando fizer sentido e limita as ações por utilizador e canal. A religação deve aplicar uma espera progressiva, não um ciclo imediato.
Não respondas automaticamente a NOTICE nem executes um comando antigo do utilizador ao reproduzir o histórico. Com echo-message pode regressar a tua própria saída: distingue-a dos pedidos recebidos.
Bobot no Dialova #
Bobot anima, entre outros, os jogos de canal do Dialova. É distinto dos jogos gráficos do site e das contas dos membros. Este exemplo mostra que um cliente automatizado pode enriquecer uma comunidade sem exigir um protocolo de chat proprietário.
Fontes e verificação
Os exemplos usam alcunhas e domínios fictícios, salvo os pontos de ligação expressamente documentados. As extensões e definições específicas de uma rede são assinaladas no texto.
- Modern IRC — spécification du protocole client ↗Fonte da especificação · consultada em 2026-10-29
- IRCv3 — Client Capability Negotiation ↗Fonte da especificação · consultada em 2026-10-29
- IRCv3 — account-tag ↗Fonte da especificação · consultada em 2026-10-29
- IRCv3 — echo-message ↗Fonte da especificação · consultada em 2026-10-29