Stavíme IRC bota IV. – Konfigurace

Před spuštěním Eggdropa je třeba upravit dva soubory: konfigurační a
(volitelně) i botchk soubor. Příklady konfiguračních souborů naleznete v adresáři,
kam jste si rozbalili source Eggdropa; soubory mají názvy: eggdrop.simple.conf,
eggdrop.advanced.conf a eggdrop.complete.conf, posledním je botchk.
Když stáhnete Eggdropa do svého systému, můžete rozbalit tarball
(.tar.gz) soubor do vlastního adresáře pomocí PowerArchiver nebo podobného programu a prohlédnout si příklady
konfiguračních souborů, botchk soubor a celou dokumentaci lokálně. Můžete použít například Notepad (Poznámkový blok)
pro úpravy těchto souborů, i když raději doporučujeme použít editor podporující i Unixový
formát souborů, například EditPlus.
Úprava konfiguračního souboru

Když teprve začínáte s Eggdropem, měli byste použít soubor eggdrop.simple.conf.
Zbylé dva příklady konfiguračních souborů jsou více obsažné a složitější, ale lze s jejich pomocí nastavit mnoho
věcí týkajících se chodu bota. Když tedy chcete mít plnou kontrolu nad chováním svého Eggdropa, najděte si více času a pečlivě si prostudujte množství možností a nastavení v detailnějších konfiguračních souborech.
Nejdříve byste měli přejmenovat konfigurační soubor na něco jiného než
eggdrop.simple.conf. Celkem často používaný je nick bota (např.:
MujBot.conf). Eggdrop má mnoho možností pro konfiguraci a úpravy
konfiguračního souboru mohou zabrat celkem dost času. V konfiguračním souboru
můžete nastavit IRC servery, které budete používat, kanály ve kterých tento bot
bude a další volitelné možnosti chování Eggdropa. Doporučujeme
projít si celý konfigurační soubor, abyste si bota uměli nastavit podle svých potřeb.
Všechny možnosti jsou v konfiguračním souboru komentovány a obsahují příklady
– přečtěte si je velmi pozorně. Některé z nich jsou velmi důležité pro správný chod bota
Když upravujete konfigurační soubor ve vašem systému (někdy je to lepší
než úprava ve shellu, který například ještě tolik neovládáte) musíte
jej upravený uploadnout do vlastního adresáře bota.
Níže uvádíme některá doporučení pro většinu nastavení – nejedná se ale
o všechna nastavení. Upozorňujeme, že mnoho možností je
komentováno (např. začínají # (hash) znakem)
– komentovaná nastavení mohou znamenat, že nastavení není použito, nebo má
výchozí hodnotu. Odkomentování nastavení provedete smazáním
hash znaku. Mnoho možností může být nastaveno na 0 nebo 1 – 0
většinou znamená, že volba je vypnuta a 1 znamená volbu zapnutou.
Pokud upravujete soubor eggdrop.simple.conf raději než eggdrop.advanced.conf
nebo eggdrop.complete.conf, můžete přeskočit popisy níže, neboť obsahují většinou
mnoho z více komplexních možností a nejsou obsaženy v souboru eggdrop.simple.conf.

set username: pokud na vašem shellu běží identd (většinou ano), nastaví se na
vaše přihlašovací jméno.
set my-hostname a set my-ip: jednu z těchto možností je třeba nastavit,
pokud chcete aby váš bot používal vhost.
Nastavení my-hostname je vhost, např. linux.skvelyshell.cz, a
my-ip je IP adresa vhostu, např. 206.143.63.217. Není potřeba
nastavovat obě hodnoty, ale doporučujeme je, protože někdy pomohou vyřešit
problémy shellu s DNS.
logfile: ukládání logů je dobrý nápad. Většinou stačí jeden log pro záležitosti bota a jeden pro každý kanál.
Pro bota přidejte řádek logfile mcobxs * „botnick.log“ do konfigu.
Pro kanály přidejte logfile jkp #oslove „#oslove.log“,
logfile jkp #kone „#kone.log“, atd. Nezapomeňte smazat
příklad pro kanál #lamest. Když chcete logy ukládat do vlastního adresáře,
určete adresář ve jménu logu (např.: logfile jkp #oslove „logy/#oslove.log“ pro
zápis logů do adresáře logy).
set sort-users: výchozím tříděním uživatelů je podle toho, jak byli přidáváni,
od prvního k poslednímu. Nastavením tohoto na 1
zařídíte, že seznam se setřídí podle flagů uživatelů. Obě třídění jsou užitečné – Doporučujeme ponechat nastavení
na 0 pro začátek.
listen 3333 all: toto je třeba změnit. Vyberte nějaký port
mezi 4000 a 65536. Můžete toto samozřejmě zakomentovat,
ale tím zabráníte všem telnetovým spojením na bota (nebude možno bota použít jako
hub, nebude možno telnet na bota a bot nebude odpovídat na
/ctcp botnick CHAT požadavky).
set protect-telnet: nastavení hodnoty na 1 doporučujeme z bezpečnostních
důvodů.
set require-p: to je užitečná vlastnost, povolující přístup na party linku určeným uživatelům.
Doporučujeme nastavení na 1.
set stealth-telnets: když se připojujete telnetem na bota,
většinou zobrazí nick a informace o verzi. Tyto informace mohou vidět lidé,
kteří scanují porty na shellu. Nastavení hodnoty na 1 zabrání botovi v zobrazení své přezdívky a verze,
když se na něj někdo připojí telnetem.
set dcc-flood-thr: toto nastavení omezuje počet řádek za sekundu,
které můžete poslat na party linku bez problémů. Když bot zlobí a vy chcete vkládat
více řádků do party linky najednou, zvyšte hodnotu na 5 nebo 10.
set hourly-updates: dobrým nápadem je změna výchozího nastavení
z hodnoty 00, protože když ostatní boti již používají
00, tak zbytečně přetěžují shell. Vyberte si nějako hodnotu, která není
dělitelná 10 (např.: 03, 37 a 56 jsou
příklady dobrého nastavení).
set notify-newusers: tuto hodnotu nastavte nastavte na nick, který máte v botovi.
Toto nastavení se nepoužívá, pokud máte learn-users vypnuto.
set owner: zde napište pouze jednu osobu –
sebe. Nastavte na přezdívku, kterou máte v botovi. NENECHÁVEJTE zde výchozí hodnotu
„MrLame, MrsLame“.
set default-flags: toto jsou flagy, které jsou automaticky nastaveny uživateli, když se představí botovi
(pokud je learn-users zapnuto)
nebo když byl přidán pomocí příkazu .adduser. Pokud nechcete aby měl dané flagy uživatel,
nastavte zde hodnotu „“ nebo „-„.
set remote-boots: výchozí nastavení hodnoty 2 zatěžuje boty v party lince
(vypisuje se zde např. kdo byl kde vykopnut, atd.). Měli byste hodnotu nastavitt spíše na 0
nebo 1.
unbind dcc n tcl *dcc:tcl a unbind dcc n set *dcc:set: tyto řádky
zakáží použití příkazů .tcl a .set. Je dobré nechat tyto řádky jak jsou,
neboť příkazy .tcl a .set mohou být bezpečnostním rizikem. Poskytují přístup na shell přes bota.
Tyto příkazy jsou užitečné jen pokud plánujete psaní Tcl skriptů.
set must-be-owner: pokud máte povoleny příkazy .tcl a .set, musíte zde nastavit
hodnotu 1. Od verze 1.3.26 lze nastavit 2 pro větší bezpečnost.
set chanfile: soubor s kanály (chanfile) vám umožňuje ukládat ‚dynamické‘
kanály, do kterých bot přichází, když je restartován. Dynamické
kanály jsou ty, které jste přidali příkazem .+chan a nejsou definovány v konfiguračním
souboru. Soubor s kanály je užitečný, pokud často přidáváte, mažete kanály z bota,
ale může s ním dojít k přepsání a omylům např. při přidávání/mazání kanálů,
které jsou uloženy v konfiguračním souboru. Pokud nechcete používat soubor s kanály,
nastavte zde hodnotu „“.
channel add: toto je příkaz pro přidání kanálů do bota.
Je zde mnoho možností a nastavení. Kanály se přidávají v tomto formátu:
channel add #oslove {
volby
}

channel set #oslove +volba -volba
channel add #kone {
volby
}

channel set #kone +volba -volba
Všechny různé možnosti a nastavení kanálů jsou ukázána na příkladech v konfiguračním
souboru. Nezapomeňte smazat příklady pro kanály #lamest a #botcentral.
set nick: zde určíte, jakou bude mít váš bot přezdívku. Doporučujeme nepoužívat
znaky [ ] { } v přezdívce, neboť mohou být příčinou problémů s některými
Tcl skripty, ale pokud je opravdu chcete použít, je třeba oddělit je pomocí zpětných lomítek
v nastavení, např. pokud chcete, aby bot měl přezdívku [NiceBot],
použijte set nick „[NiceBot]“.
set altnick: pokud chcete použít znaky [ ] { } v alternativní přezdívce bota, podívejte se výše na pravidla
se zpětnými lomítky.
set servers: v tomto seznamu můžete určit více serverů, pro případy, kdy se botovi nepodaří připojit na první.
Formát pro seznam je zobrazen níže.
set servers {
irc.chitchat.com:6667
irc.talkworld.com:6665
irc.nice.net:6667
}

Když je to možné, můžete použít i jiné porty než 6667 (připojte se k serveru a napište
/motd pro zjištění dostupných portů). Používejte jen servery, které
povolují boty (některé servery a shelly mají pravidla pro irc boty).
set use-ison: toto nastavení ponechte na hodnotě 1, nastavení na 0
umožní použití příkazu ‚trace‘ a může znamenat k-line (zabanování) pro vašeho bota ze serveru.
set strict-host: pokud je hodnota nastavena na 0, Eggdrop bude ignorovat
tildu v identech, začínajících ~. Nastavení na 1 je méně bezpečné,
ale může usnadnit práci ve správě uživatelských hostmasek.
Pokud nevíte, jak to máte nastavit, ponechte nastavení na hodnotě 0.
set server-cycle-wait: výchozím nastavením je, že Eggdrop čeká 60 sekund
mezi pokusy o připojení na servery. To je celkem dlouhá doba, ale je potřebná pro zabránění
‚throttling‘ na serverech Undernetu (když server přijme příliš pokusů o připojení
ze stejného hosta během krátkého časového úseku, zablokuje všechna připojení
z tohoto hosta dokud se nepřeruší pokusy o připojení). Pokud používáte Undernet a sdílíte shell více uživateli,
kteří provozují boty, nechte nastavení na hodnotě 60.
V ostatních případech hodnotu snižte na něco okolo 20.
set trigger-on-ignore: nastavením na hodnotu 1 snižujete použitelnost
ignore vlastnosti Eggdropa. Doporučujeme ponechat nastavení na 0.
set bounce-bans: nastavením na hodnotu 1 zařídíte odstranění všech banů nastavených serverem.
set bounce-modes: nastavením na hodnotu 1 zařídíte odstranění všech módů nastavených serverem.
set learn-users: toto je důležité nastavení, které určí jak budou uživatelé ořidáváni do vašeho
Eggdropa. Pokud je nastavení na hodnotě 1, lidé mohou být přidáni
po poslání zprávy ‚hello‘ botovi (uživatel bude přidán s výchozími flagy určenými v
default-flags). Pokud je hodnota 0, uživatele může přidat pouze master (správce)
použitím přikazu .adduser.
unbind msg – hello *msg:hello a bind msg – mojeslovo
*msg:hello:
zde vám je umožněno změnit příkaz ‚hello‘ na ěco jiného.
Změňte mojeslovo na nějaké jiné, které si vyberete.
Pokud máte learn-users nastaveno na 1, používá se tento příkaz pouze když se poprvé
představíte botovi sami.
unbind msg – ident *msg:ident and unbind msg – addhost
*msg:addhost:
tyto řádky znepřístupní příkazy ident a addhost.
Můžete pozměnit například příkaz ident,
namísto zakomentování unbind řádku (ten povolí výchozí
‚ident‘ msg příkaz) nebo vytvořit nový příkaz. Dobré je změnit příkaz pro vyšší bezpečnost.
Pro změnu na jiný příkaz, řekněme třeba ‚lamer‘, přidejte řádku bind msg – lamer *msg:ident.
set dcc-block: příklad v konfiguračním souboru doporučuje nastavení hodnoty na
0 (turbo-dcc), ale to může způsobovat poruchy a přerušení DCC přenosů.
Pokud budete často využívat DCC přenosy, nastavte hodnotu na 1024.

Tak! Nyní smažte příkazy ‚die‘ v konfiguračním souboru (jsou tam dva
‚schované‘ na známých místech), nebo se bot nespustí. Jak skončíte s úpravami konfiguračního
souboru, změňte jeho název na něco jiného než např. eggdrop.simple.conf.
Pak (pokud jste upravovali konfig lokálně) jej uploadněte do adresáře, kam jste nainstalovali bota.

V příštím pokračování nastavíme automatické spouštění bota v crontabu a již jej konečně spustíme.