All checks were successful
check / check (push) Successful in 58s
Add a backward-compatible IRC protocol listener (RFC 1459/2812) that allows standard IRC clients (irssi, weechat, hexchat, etc.) to connect directly via TCP. Key features: - TCP listener on configurable port (IRC_LISTEN_ADDR env var, e.g. :6667) - Full IRC wire protocol parsing and formatting - Connection registration (NICK + USER + optional PASS) - Channel operations: JOIN, PART, MODE, TOPIC, NAMES, LIST, KICK, INVITE - Messaging: PRIVMSG, NOTICE (channel and direct) - Info commands: WHO, WHOIS, LUSERS, MOTD, AWAY - Operator support: OPER (with configured credentials) - PING/PONG keepalive - CAP negotiation (for modern client compatibility) - Full bridge to HTTP/JSON API (shared DB, broker, sessions) - Real-time message relay via broker notifications - Comprehensive test suite (parser + integration tests) The IRC listener is an optional component — disabled when IRC_LISTEN_ADDR is empty (the default). The Broker is now an Fx-provided dependency shared between HTTP handlers and the IRC server. closes #89
28 lines
540 B
Go
28 lines
540 B
Go
package irc
|
|
|
|
// IRC command names (RFC 1459 / RFC 2812).
|
|
const (
|
|
CmdAway = "AWAY"
|
|
CmdInvite = "INVITE"
|
|
CmdJoin = "JOIN"
|
|
CmdKick = "KICK"
|
|
CmdList = "LIST"
|
|
CmdLusers = "LUSERS"
|
|
CmdMode = "MODE"
|
|
CmdMotd = "MOTD"
|
|
CmdNames = "NAMES"
|
|
CmdNick = "NICK"
|
|
CmdNotice = "NOTICE"
|
|
CmdOper = "OPER"
|
|
CmdPass = "PASS"
|
|
CmdPart = "PART"
|
|
CmdPing = "PING"
|
|
CmdPong = "PONG"
|
|
CmdPrivmsg = "PRIVMSG"
|
|
CmdQuit = "QUIT"
|
|
CmdTopic = "TOPIC"
|
|
CmdUser = "USER"
|
|
CmdWho = "WHO"
|
|
CmdWhois = "WHOIS"
|
|
)
|