Szarvasember – IRC bot

A középiskola első éveiben többek között IRC-en tartottuk a kapcsolatot az osztálytársakkal. Az akkori Python programozásaim kapcsán készült el a Szarvasember névre hallgató IRC bot, ami hasznos funkciókkal látta el a csatornát.

A bot kimenete a konzolon

A programhoz nem használtam kész IRC libet, hanem az RFC alapján írtam egy sajátot, ami talán jobban illeszkedett a feladathoz, kicsit “bot specifikusabb” volt. Ennek kapcsán ismerkedtem meg a socketek kezelésével, és a hálózati kapcsolatok felépítésével. Miután sikerült rábírnom a scriptet, hogy egy helló világot kiáltson a chatszobába, már könnyű dolgom volt. Rengeteg utasítás került bele az idők során, amiket a szabályos kifejezésekkel szépen feldolgoztam és ezek függvényében reagált Szarvasember.

A szobába belépő felhasználót üdvözölte, majd képes volt válaszolni a mikor, hol, mekkora, miért kérdésekre, valamint néhány más szóra is ugrott. Egyik elvetemült ötletként mondatgenerátor is került bele, ami a !mondat parancs beírására a miniatűr mondatelem adatbázisból kiszedett szavakból és mondatmintákból generált egy véletlenszerű állítást. Az ilyen fun funkciók szobánként kikapcsolhatók voltak. Képes volt autoopra, adott időre bannolni felhasználókat, és egyéb felhasználókezelésre. További hasznos lehetőség volt benne a következő napi órarend kiíratása, az időjárás jelentés lekérdezése és a visszaszámláló a következő szünetig. Helyet kapott benne anagramma játék is, ahol a szobában lévő játékosok egymással versenyezhettek, hogy ki gyűjt össze több pontot. Egy helyes megfejtés után annyi pont járt, ahány betűből állt a szó.

Amíg nagyba ment az IRC-es kommunikáció, sokat használtuk. Némi problémát jelentett, hogy nem volt szerverünk, így csak akkor működött, ha be volt kapcsolva a gépem. Később volt rá egy halvány kísérlet, hogy elkészítsem a Szarvasember v2-t, ami már komolyabb alapokon nyugszik, de addigra már nem nagyon használtuk az IRC-t.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top