Ako si vytvoriť IRC bota cez PHP

24.02.2006 19:55

Ak by ste si chceli vytvoriť IRC bota cez PHP, alebo vás iba zaujal názov, prečítajte si tento článok.

Takže chceme IRC bota naprogramovaného v PHP. Nepotrebujeme písať vlastný request, stačí ak do PEARu nainštalujeme balíček Net_SmartIRC.
Takže si to pekne nainštalujte ( $ pear install -a Net_SmartIRC )

Náš súbor môže vyzerať takto:
mojbot.php

<?php
include_once("Net/SmartIRC.php");
class mojbot
{
    function join (&$irc, &$data)
    {
        $irc->message(SMARTIRC_TYPE_NOTICE, $data->nick, "ak nepoznas pravidla, napis !pravidla"); // odosle poznamku nicku, ked sa prihlasi
    }
    function odkaz (&$irc, &$data)
    {
        if ($data->message=="!pravidla") {
            $irc->message(SMARTIRC_TYPE_QUERY, $data->nick, "nehres, nepis rychlo za sebou, ...");
            return false;
        }
    }
    function private_odkaz (&$irc, &$data)
    {
        $irc->message(SMARTIRC_TYPE_QUERY, $data->nick, "nepis mi, som robot!!!");
    }
}
$bot=&new mojbot();
$irc=&new Net_SmartIRC();
$irc->setDebug(SMARTIRC_DEBUG_ALL);
$irc->setUseSockets(TRUE);
$irc->registerActionhandler(SMARTIRC_TYPE_CHANNEL, "^", $bot, "odkaz"); // ked niekto posle spravu na kanal, zavola metodu odkaz z triedy $bot, teda mojbot
$irc->registerActionhandler(SMARTIRC_TYPE_QUERY | SMARTIRC_TYPE_NOTICE, "^", $bot, "private_odkaz"); // ked niekto posle spravu botovi, zavola metodu private_odkaz
$irc->registerActionhandler(SMARTIRC_TYPE_JOIN, "^", $bot, "join"); // ked sa niekto joinne, zavola metodu join
$irc->connect("irc.server.sk",6667); // pripoji sa
$irc->login("bot","skutocne meno bota"); // prihlasi sa
$irc->join("#kanal"); // joine sa na kanal #kanal, moze to byt aj array kanalov
$irc->listen();
$irc->disconnect();
?>

Potom to spustíme ako $ php mojbot.php

Takisto tam sú aj funkcie na vylistovanie užívateľov na kanáli, na pridanie a odobranie operatorského práva, banu a podobne.
Registrujú sa časové handlery (vykonávajú sa v určitom časovom limite), action handlery (vykonávajú sa keď sa niekto joinne, alebo niečo napíše, alebo keď sa pridá alebo odobere operatorské právo atď.).
Do bota môžme pridávať aj nejaké variably, kde sa budú ukladať nejaké informácie, napríklad sa ukladá kto koľkokrát zahrešil a podobne.

Pokračovanie v ďalšej časti ( ak o to bude záujem :-) ).

    • pis dal 26.02.2006 | 10:38
      damien   Návštevník

      super clanek pis dal...

    • yin yang 10.03.2006 | 20:37
      Avatar patie   Návštevník

      z jednej stranky ma takyto bot vyhodu lebo si ho mozme spustit vela krat z druhej strany je bot spomaleny.. taketo nieco som skusal uz skor.. pohoda

      zivot je tazky - jeden z najtazsich