Писане на IRC бот в PERL - Статии

  • статии
  • Членове
  • 152 съобщения
  • Писане на IRC бот в PERL

    Здравейте! Днес ще ви кажа как да напишете прост irc бот на PERL. Току-що започнах да уча този език. Веднъж изтеглих книгата на Клинтън Пиърс - "Овладейте Perl за 24 часа" Ще кажа веднага - книгата е така, така, само основите (Но точно това ми трябваше) И когато стигнах до модулите, попаднах на IO::Socket. Същата вечер все още седях в ирк и си помислих: "Защо не опитам."

    Е, лиричното отклонение приключи =) Да започваме!

    И така, какво ни трябва: ActivePerl, интернет връзка, mIRC (или друг клиент за IRC), минимални познания за PERL и документация за IRC протокола от страна на клиента (използвах ]]> http://tools.ietf.org/html/rfc2812) ]]>

    Е, зададохме променливите, има начало =) Сега отиваме на документацията, виждаме, че първото нещо, което трябва да изпратим, е

    Така че нека го направим 8) В променливата $socket въвеждате NICK $nick, \r\n - връщане на каретката към следващия ред (същото като Enter)

    Продължавайки напред, следващата команда трябва да бъде:

    Готово, ботът е влязъл в irk сървъра, влязъл е в канала, НО след известно време ще бъде изхвърлен поради (Ping timeout) Разбира се, нямаме нужда от това. Според протокола след известно време сървърът не изпраща заявка като "PING : irc.site.com" и трябва да изпратим PONG отговор. Отивайки до документацията, виждаме:

    "Шкодим" през примката Готово! Сега нашият бот може да се свърже със сървъра, да влезе в канала и да "не се срине" 8) Но все пак нещо липсва, нали? =) Айде да направим така, че при влизане в канала да казва здравей: Страхотно! Но бот без команди не е бот, нали? =)

    Ето пример за някои: (пишем в цикъла while()) Всъщност, ето го, най-простият бот е готов! =)

    Дадох ви основите, а след това нека да го направим сами. Моля ви да не критикувате силно, защото едва наскоро се заех с изучаването на перлите. Бих се радвал да чуя вашите критики и коментари. По-долу е целият източник на бота. Благодаря ви за вниманието!

  • perl
  • Почитаем
  • 189 съобщения
  • чехли с череши

  • статии
  • Модератор
  • 256 съобщения
  • Брой потребители, които четат тази тема: 0

    0 потребители, 0 гости, 0 анонимни