Portál AbcLinuxu, 3. května 2025 17:34
Seznámení se základními IRC příkazy. Ukázky skriptů zjednodušujících práci s klientem irssi.
Většina čtenářů bude určitě IRC znát, minimálně alespoň vědět, že existuje a asi tak k čemu to je. Nuže i pro ty neznalé řeknu, že IRC je zkratka Internet Relay Chat a jde o chatovací systém. Připojit se k IRC serveru na port 6667 můžete buď pomocí IRC klienta, např. xchat nebo irssi, o kterém bude druhá část článku. Pokud nechcete instalovat klienta nebo jste náhodou někde, kde to není možné, tak některé servery nabízí webové rozhraní. IRC je možné provozovat i pomocí telnetu, ovšem tento způsob je poměrně nepřehledný.
Komunikace spočívá v připojení se k serveru, zvolení přezdívky (/nick <prezdivka>
) a ve výběru kanálu. To můžeme učinit příkazem /list
. Některé servery to však mají z důvodu velkého počtu kanálů zakázané. To ale nevadí, na internetu je mnoho seznamů IRC kanálů a serverů (případně sítí - několik IRC serverů se spojí v jednu síť a přeposílají si mezi sebou komunikaci).
Po vstupu do kanálu příkazem /join #<nazev kanalu>
můžete v klidu komunikovat s ostatními. Kanál je možné opustit příkazem /part #<nazev kanalu> [zprava pri odchodu]
nebo /quit #<nazev kanalu> [zprava]
. Nemusíte ale komunikovat jen v jednom kanálu, ale klidně ve více najednou nebo jen s jedním uživatelem. Pokud si chcete s někým promluvit soukromě, napíšete /query <nick uzivatele>
.
Každý kanál má tzv. operátory a jinak privilegované uživatele, kteří mají práva např. měnit téma (/topic <nový topic>
) kanálu nebo vyhazovat (/kick <nick>
) či rovnou zakazovat (/ban <nick> [cas]
) nebo privilegovat jiné uživatele (/op <nick>
).
Tím se dostáváme k tomu, kterak se zbavit otravných či jinak nepříjemných spoluchatujících. To lze buď jejich vyhozením z kanálu (mohou se potom vrátit), nebo rovnou zákazem, tím je kanál pro uživatele zablokován. Pokud vám píše "otravák" přes query nebo pomocí msg (/msg <nick> <zprava>
nebo /query <nick>
), je možné se ho zbavit příkazem /ignore <nick>
a máme pokoj. Opět můžeme daný nick "vnímat" příkazem
/unignore <nick>
.
Pokud nejsme u počítače, ale jsme připojeni k IRC (např. screen), tak to můžeme dát vědět pomocí /away <komentář>
nebo pomocí /me <zpráva>
, které se zobrazuje, že něco říkáme o sobě z pohledu jiné osoby, např. "jindra prave odchazi".
Irssi je poměrně oblíbený terminálový IRC klient. Každý kanál/uživatel, ve kterém jste přítomni, má vlastní okno (okno 1 slouží pro zprávy od irssi nebo od IRC serveru). Mezi okny přepínáte příkazem /window <cislo okna>
nebo klávesami alt+ <cislo okna>. Irssi podporuje doplňování příkazů a jejich přehled (/help
), kde - pokud umíte anglicky - většinu příkazů pochopíte.
Větsina IRC klientů podporuje skriptování pro ulehčení komunikace. Otázkou je, do jaké míry je to potřebné a k čemu je to dobré. Pomocí scriptu si můžete napsat např. nějak formátovaný logger komunikace, automatický odpovídač, posílání zpráv na e-mail/mobil, pokud jste nedostižní a další. Skripty se většinou píší v jazyce perl, stačí použít balíček Irssi.
Velké množství už hotových skriptů lze stáhnout z http://irssi.org/scripts. Stažené nebo vlastní skripty nahrajte do adresáře $HOME/.irssi/scripts
nebo do
$HOME/.irssi/scripts/autorun
, pokud je budete chtít spouštět automaticky. Poté je načteme pomocí /script load <nazev skriptu>
,
odstranit jej můžeme příkazem /script unload <nazev skriptu>
. Pokud vás pouze zajímá, jaké skripty máte spuštěné, napište /script list
.
Irssi obsahuje signály (události) nebo commandy (příkazy - /<command>
). Události irrsi je možné vytvářet nebo odstraňovat. Začneme signály, které budeme asi používat častěji než příkazy (záleži na tom, co budeme psát). Nasledující řádky ukazují, jak přiřadit/odstranit funkci události nebo příkazu irssi.
Irssi::signal_add("<signal>", odkaz_na_fci);
- přiřadí funkci k signáluIrssi::signal_remove("<signal>", odkaz_na_fci);
- odstrani přiřazení funkce k signáluIrssi::command_bind("<command>", fce [, kategorie]);
- přiřadí fci k příkazuIrssi::command_unbind("<command>", fce [, kategorie]);
- odstraní přiřazení fci k příkazuMyslím si, že tohle pro tvorbu základních skriptů stačí. Není cílem tohoto článku opsat /usr/share/doc/irssi/
. Pokud ovšem máte zájem dozvědět se víc, tak se to dozvíte v /usr/share/doc/irssi/perl.txt
. Seznam signálů naleznete ve stejném adresáři v souboru signals.txt
.
Signály se třídí do několika kategorií - podle toho na co reagují. Například následující reagují na zprávy.
message public | veřejná zpráva | |
message own_public | veřejná zpráva psaná námi | |
message private | soukromá komunikace | |
message own_private | soukromá komunikace psaná námi | |
message part | zpráva při odchodu uživatele z kanálu (oznámení odchodu) | |
message join | zpráva při vstupu do kanálu (oznámení vstupu) | |
message nick | změna nicku | |
message kick | informace o vyhození uživatele z kanálu |
Tyto události se nám hodí například k automatizaci návratu do kanálu po vyhození.
Většina psavců skriptů dává na začátek kódu hlavičku, ve které říkají, o jakou verzi scriptu se jedná, kdo ho napsal, homepage skriptu atd.
#!/usr/bin/perl
|
To byl malý příklad psaní funkce pro signál. Další příklad bude ukazovat tvorbu nového příkazu pro irssi.
#!/usr/bin/perl
|
Doufám, že vám tyto jednoduché ukázky pomohou sžít se s IRC i klientem irssi.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.