IRC Gateway pro Chatujme.cz — připojte se k chatu pomocí libovolného IRC klienta (HexChat, mIRC, irssi, WeeChat a další). Gateway komunikuje s Chatujme.cz API (api.chatujme.cz/irc) a překládá IRC protokol na volání interního API.
Chatujme.cz provozuje veřejnou instanci této brány:
| Server | irc.chatujme.cz |
| Port | 6667 |
| Port SSL/TLS | 6697 |
Přihlášení probíhá standardním IRC způsobem — IRC příkazy NICK, USER a PASS s přihlašovacími údaji k účtu na Chatujme.cz. Registrace nových účtů přes IRC není možná, pouze přes web (chatujme.cz/registrace).
Místnosti se adresují číslem: /join #12345 (číslo místnosti z webu).
| Platforma | Klient |
|---|---|
| Windows | HexChat, mIRC |
| macOS | HexChat, Textual |
| Linux | HexChat, WeeChat, Irssi |
| Android | Revolution IRC |
| iOS | Palaver |
- Python 3.8+
- Žádné externí závislosti (pouze stdlib)
# Plain IRC na portu 6667
python3 chatujmegw.py
# S debug výstupem
python3 chatujmegw.py --port 6667 --listen 0.0.0.0 --debug 1
# SSL/TLS na jednom portu
python3 chatujmegw.py --ssl --ssl-cert cert.pem --ssl-key key.pem --port 6697
# Dual-port režim (plain 6667 + SSL 6697)
python3 chatujmegw.py --port 6667 --ssl-port 6697 --ssl-cert cert.pem --ssl-key key.pem| Parametr | Popis | Výchozí |
|---|---|---|
--port |
Port pro naslouchání | 6667 |
--listen |
Bind adresa | 0.0.0.0 |
--debug |
Debug úroveň (0–2) | 0 |
--ssl |
SSL/TLS na hlavním portu | — |
--ssl-port |
Druhý port pro SSL (dual-port mód) | — |
--ssl-cert |
Cesta k SSL certifikátu (PEM) | — |
--ssl-key |
Cesta k SSL privátnímu klíči (PEM) | — |
Minimální verze TLS 1.2. Self-signed certifikát pro testování:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes \
-subj "/CN=chatujme.cz/O=ChatujmeGW/C=CZ"# Docker Compose
docker compose up -d
# Manuální build
docker build -t chatujmegw .
docker run -d -p 6667:6667 -p 6697:6697 --restart always --name chatujmegw chatujmegwpip install pyinstaller
pyinstaller --onefile --console --icon=chatujme.ico chatujmegw.pyPředkompilovaný dist/chatujmegw.exe je součástí repozitáře.
| Příkaz | Popis |
|---|---|
NICK |
Nastavení nicku |
PASS |
Heslo k účtu |
USER |
Uživatelské jméno |
JOIN #id |
Vstup do místnosti (číslo místnosti) |
PART #id |
Odchod z místnosti |
PRIVMSG #id :text |
Zpráva do místnosti |
PRIVMSG nick :text |
Soukromá zpráva |
LIST |
Seznam místností |
WHO #id |
Uživatelé v místnosti |
WHOIS nick |
Informace o uživateli |
NAMES #id |
Seznam uživatelů |
AWAY :text |
Nastavení away zprávy |
QUIT |
Odpojení |
PING / PONG |
Keepalive |
CAP |
Capability negotiation |
VERSION |
Verze serveru |
USERHOST nick |
Host uživatele |
MOTD |
Message of the Day |
| Příkaz | Popis |
|---|---|
KICK #id nick :důvod |
Vykopnutí uživatele |
MODE #id +o nick |
Předání správce |
TOPIC #id :text |
Změna popisu místnosti |
| Příkaz | Popis |
|---|---|
NICKSERV IDENTIFY / NS ID |
Již přihlášen přes PASS |
NICKSERV REGISTER / REGISTER |
Přesměruje na web registraci |
| Příkaz | Popis |
|---|---|
IDLER ON / OFF |
Zapnout/vypnout |
IDLER STATUS |
Aktuální nastavení |
IDLER TIME <s> |
Interval nečinnosti (výchozí: 2400 s = 40 min) |
IDLER TEXT <texty> |
Zprávy oddělené čárkou (výchozí: ., .., AFK) |
VERSION, PING, TIME, ACTION (/me)
| Symbol | Význam |
|---|---|
@ |
Operátor místnosti |
% |
Half-op (omezená práva) |
+ |
Voice |
- Rate limiting: max 5 spojení/IP za 60 s, max 10 příkazů/s na spojení
- Max 378 současných spojení
- Validace nicku (4–23 znaků,
a-z 0-9 - _, musí začínat písmenem) - Validace room ID (číselné, max 999999)
- IRC protocol injection prevence (sanitizace CRLF, null bytes)
- Maskování hesel a tokenů v logu
- In-memory cookies (žádné soubory)
- API komunikace výhradně přes HTTPS
- TLS 1.2+ pro SSL spojení
Gateway implementuje subset RFC 1459.
Numerické kódy (35+)
| Kód | Název | Popis |
|---|---|---|
| 001 | RPL_WELCOME | Uvítací zpráva |
| 002 | RPL_YOURHOST | Info o serveru |
| 003 | RPL_CREATED | Datum vytvoření |
| 004 | RPL_MYINFO | Info o serveru |
| 301 | RPL_AWAY | Uživatel je pryč |
| 302 | RPL_USERHOST | Host uživatele |
| 305 | RPL_UNAWAY | Již nejsi pryč |
| 306 | RPL_NOWAWAY | Jsi označen jako pryč |
| 311 | RPL_WHOISUSER | WHOIS info |
| 312 | RPL_WHOISSERVER | WHOIS server |
| 313 | RPL_WHOISOPERATOR | WHOIS operátor |
| 315 | RPL_ENDOFWHO | Konec WHO |
| 317 | RPL_WHOISIDLE | WHOIS idle |
| 318 | RPL_ENDOFWHOIS | Konec WHOIS |
| 319 | RPL_WHOISCHANNELS | WHOIS místnosti |
| 321 | RPL_LISTSTART | Začátek LIST |
| 322 | RPL_LIST | Položka LIST |
| 323 | RPL_LISTEND | Konec LIST |
| 324 | RPL_CHANNELMODEIS | Módy místnosti |
| 331 | RPL_NOTOPIC | Bez tématu |
| 332 | RPL_TOPIC | Téma místnosti |
| 351 | RPL_VERSION | Verze serveru |
| 352 | RPL_WHOREPLY | WHO odpověď |
| 353 | RPL_NAMREPLY | Seznam uživatelů |
| 366 | RPL_ENDOFNAMES | Konec NAMES |
| 368 | RPL_ENDOFBANLIST | Konec ban listu |
| 372 | RPL_MOTD | MOTD řádek |
| 375 | RPL_MOTDSTART | Začátek MOTD |
| 376 | RPL_ENDOFMOTD | Konec MOTD |
| 378 | RPL_WHOISHOST | WHOIS host |
| 401 | ERR_NOSUCHNICK | Nick neexistuje |
| 403 | ERR_NOSUCHCHANNEL | Místnost neexistuje |
| 421 | ERR_UNKNOWNCOMMAND | Neznámý příkaz |
| 444 | ERR_NOLOGIN | Chyba přihlášení |
| 461 | ERR_NEEDMOREPARAMS | Chybí parametry |
| 474 | ERR_BANNEDFROMCHAN | Zakázán vstup |
| 482 | ERR_CHANOPRIVSNEEDED | Nedostatečná oprávnění |
- Kódování: nastavte UTF-8 v IRC klientu
- Firewall: ověřte, že porty 6667/6697 nejsou blokované
- Timeout: spojení má 5minutový timeout, PING se posílá každých 60 s
MIT License
LuRy — lury@lury.cz
Původní projekt založen na lidegw.