IRC-dokumentation · Medelnivå
Förstå och utveckla en IRC-bot
En IRC-bot är ett program som ansluter till nätverket som en klient. Den kan lyssna på händelser, svara på kommandon och ordna aktiviteter. Tillförlitligheten beror framför allt på protokollhantering, behörigheter och sändningstakt.
Dialovas team · Kontrollerat den
En bots arbetscykel #
- Öppna en TLS-anslutning och kontrollera certifikatet.
- Förhandla CAP och autentisera kontot om policyn kräver det.
- Ange IRC-identitet och invänta slutförd registrering.
- Gå med i tillåtna kanaler och behandla meddelanden, fel och händelser.
- Svara på PING, begränsa sändningar och planera återanslutning med ökande väntetid.
S: PING :jeton-123
C: PONG :jeton-123
S: :Alice!alice@cloak.example PRIVMSG #atelier :!bonjour
C: PRIVMSG #atelier :Bonjour Alice !Utdraget visar flödet och är inget komplett körbart program. Ett underhållet IRC-bibliotek kan hantera transport och grammatik i stället för att anta att varje nätverksläsning ger en hel rad.
Skilj protokoll, regler och åtgärder #
| Del | Ansvar |
|---|---|
| Transport och tolkning | TLS, byte, CRLF, ofullständiga meddelanden och gränser. |
| IRC-tillstånd | Registrering, funktioner, kanaler, identitet och ändringar. |
| Botlogik | Känn igen begäran, kontrollera villkoren och skapa en åtgärdsavsikt. |
| Utgående kö | Begränsa hastigheten, bevara ordningen och undvik upprepad sändning efter återanslutning. |
Lita inte enbart på smeknamnet #
En deltagare kan byta smeknamn eller imitera syntax. Använd en serverbekräftad identitet där den finns för känsliga åtgärder och kontrollera sedan åtgärdens behörigheter. Ge inte en spelbot operatörsrättigheter bara för att den ska kunna prata.
Inkommande text är opålitlig indata. Skicka den inte till ett skal, en fråga byggd med strängsammanfogning eller en kodtolk. Anslutningshemligheter hör hemma i privat konfiguration, inte i ett kodarkiv eller botsvar.
Undvik meddelandeflod och slingor #
Nätverket bestämmer gränserna. Ingen sändningstakt är säker överallt. Hantera fel, samla utdata när det är lämpligt och begränsa åtgärder per användare och kanal. Återanslut med ökande väntetid i stället för en omedelbar slinga.
Svara inte automatiskt på NOTICE och kör inte gamla användarkommandon när historik återspelas. Med echo-message kan egen utdata komma tillbaka. Skilj den från inkommande begäranden.
Bobot på Dialova #
Bobot sköter bland annat Dialovas kanalspel. Den är skild från webbplatsens grafiska spel och medlemmarnas konton. Exemplet visar hur en automatiserad klient kan berika en gemenskap utan ett proprietärt chattprotokoll.
Källor och kontroll
Exemplen använder påhittade smeknamn och domäner, utom uttryckligen dokumenterade anslutningspunkter. Nätverksspecifika tillägg och inställningar anges i texten.
- Modern IRC — specifikation för klientprotokollet ↗Källa specifikation · kontrollerad den 2026-10-29
- IRCv3 — förhandling av klientfunktioner ↗Källa specifikation · kontrollerad den 2026-10-29
- IRCv3 — account-tag ↗Källa specifikation · kontrollerad den 2026-10-29
- IRCv3 — echo-message ↗Källa specifikation · kontrollerad den 2026-10-29