Статьи Вводный курс по созданию и настройке Irc ботов

Discussion in 'Статьи' started by KPOT_f!nd, 15 Oct 2006.

  1. KPOT_f!nd

    KPOT_f!nd положенец общага

    Joined:
    25 Aug 2006
    Messages:
    1,074
    Likes Received:
    502
    Reputations:
    65
    В данной статье я не буду рассказывать о том, как создать свои скрипты (хотя это не сложно). А по на пальцах расскажу основные принципы.
    В статьи я отвечу на следующие вопросы:
    Начало
    Если вы постоянный посетитель IRC или вы фаундер (хозяин) среднего канала и вы задумывались о установки бота на свой канал, но не знали, что это – эта статья для ВАС.
    Дело это не простое, но и не очень сложное – в некоторых случаях требует финансового вложения.

    Что же такое бот? Основные понятия.
    Бот это своеобразный пользователь, который автономно выполняет команды и следить за каналом, а так же находиться на нём ~ 24 часа в сутки.
    Плюсы бота:
    1. Создаёт некий престиж для канала
    2. Следит за флудом (засорением канала) и если у бота есть права наказывает виновного
    3. Выполнение довольно важных функций (поиск человека, поиск информации и т.п.)
    4. Игрушка, если установлен игровой бот (викторина, анекдот, рулетка и т.п.)

    Например мой бот, который находится в сети Dalnet выполняет следующие функции:
    !stat - Узнать статистику о себе. !stat - узнать статистику о нике
    !top10,!top20 - Узнать топ10/топ20 самых общительных на канале.
    !place,!tplace - Узнать какое место вы занимаете, узнать какое место вы заняли сегодня.
    !chanplace - Узнать какое место занимает канал на котором вы находитесь.
    !seen - !seen Ник - поиск человека.
    !peak - Узнать когда было максимальное кол-во человек на канале.
    !horolove - покажет любовный гороскоп на сегодня с www.horo.ru.
    !today (!сегодня) - покажет звездный гороскоп на сегодня для всех знаков.
    !server,!сервер - Данный скрипт позволит узнать какие сервисы запущены на хостинге, где хостится домен.
    !whois - Войс домена или ip Пример: !whois www.ya.ru . Вся информация берётся с ripn.net
    !port - Коннект на определенный порт. Пример: !port www.ya.ru 80.
    !nmap - Сканирует сервер на открытые порты.
    !ya - Поискать информацию в Яндекс. Аналог: !yandex,!яндекс.
    Это лишь маленький список возможностей МОЕГО бота (более подробно: http://www.sunlim.net/irc/botinfo/help.txt)

    Где взять бота и как его установить на свой (или на любой) канал?
    Захотели вы установить бота к себе на канал, тут можно пойти двумя способами:
    А). Попросить нужного вам бота на специализированных каналах (В разных сетях разные каналы, такие как #bot #bots #eggdrop #eggdrops #egghelp #bothelp). В общем найдёте нужный канал.
    Б). Установить бота на шелл (нужно иметь shell-доступ к сайту) и стать его хозяином.
    Для начала надо выбрать какой нужен бот – это зависит от того на какой платформе стоит сервер , где будете размещать бота (может быть либо win либо *nix)
    Для серверов на Windows – Windrop бот, а для серверов на *nix – eggdrop. Всё предельно ясно, других ботов я даже не рассматриваю.
    Про Windrop я тоже писать не буду, так как он менее распостранён, чем egg.

    Порядок установки Eggdrop’a на *nix shell:
    1. Найти сам шелл. Это может быть хостинг от вашего сайта, где поддерживается доступ по SSH + должен быть установлен пакет TCL.
    2. Если вы наши nix’овый шелл переходим далее… Заходим в программу putty выбираем SSH, вводим информацию – коннектимся. Всё предельно просто, попадаем в консоль управления (шелл) -> сразу же советую набрать команду tclsh (этим самым вы узнаете установлен ли TCL модуль (НЕОБХОДИМ), если вы получите приглашение в виде символа "%" то TCL модуль есть (Превосходно), если такого преглашения вы не получите – вы не сможете установить бота.
    3. Если вы получили % - сразу пропускайте этот пункт. (УСТАНОВКА TCL ВОЗМОЖНО ТОЛЬКО ИЗ ПОД ROOT АККАУНТА)
    Как установить TCL ?
    Скачать TCL в исходниках можно с ftp-сайта: ftp://ftp.scriptics.com/pub/tcl/
    Порядок сборки TCL:
    Распакуйте архив с TCL (tar -zxf tcl8.x.x.tar.gz)
    Зайдите в директорию с нужной платформой (cd tcl8.x.x/unix)
    Наберите './configure'
    Наберите 'make'
    Наберите 'make install'

    И в /usr/local/lib появится libtcl8.x.x.so, в /usr/local/include директория tcl8.x.x, а в /usr/local/bin cl-shell tclsh.
    4. Переходим к установке самого бота.
    Сразу посетите следующие ссылки
    ftp://ftp.eggheads.org/pub/eggdrop/GNU/ Исходные коды всех версий бота включая последнюю beta-версию
    http://geteggdrop.com/ Сразу отдает последний релиз бота
    http://johoho.eggheads.org/eggdrop/ Скомпиленные версии бота под разные платформы

    Но я советую использовать уже собранный комплект и имеющий основные модули eggdrop1.6.16.rus, собрал человек под ником dRive-r (За это ему большой респект)
    Устанавливаем бота:
    wget http://...полный путь до бота на сервере/…tar
    tar –zxf eggdrop.tar
    cd eggdrop
    ./configure (Конфигурируем бота)
    *** Но если собирать нужно с конкретной версией TCL, то указывайте:
    ./configure --with-tcllib=/libtcl8x.so --with-tclinc=/tcl.h
    make config (Для автоматического подключения модулей)
    make

    Так вроде бота поставили =) Теперь надо настроить бота, чтобы потом его запустить.
    В шелле набираем mc и переходим в папку куда мы разархивировали файлы для бота, наводим курсор на файл eggdrop.conf и нажимаем F4 (Это основной файл, где хранится большая часть информации и настроек для Бот’a).
    Находим в данном файле строки:

    set nick "Nick" <- Ник для вашего бота, советую зарегистрировать данный ник ДО захода бота в сеть.
    set altnick "Altnick" <- Альтернативный ник, если основной ник используется
    set username "use" <- данные перед @ в хуизе (Идент)
    set realname "ICQ: 12345" <- Имя =) Можно вписать, что угодно например ваши контакты.
    set allow-desync 1

    Дальше находим:
    set servers { <- Список серверов на которые должен заходить БОТ
    irc.dalnet.ru:6667 <- Сервер для моего бота, ВВЕДЁН для примера.
    Irc.web-hack.ru:6667 <- Альтернативный сервер
    }

    Дальше:
    channel add #channel { <- Основной канал для вашего бота =) Это первый канал, куда бот зайдёт. Потом список можно увеличить.
    }

    Дальше:
    set owner "KROT_find" <- Ваш ник, хозяин бота
    set admin "nick " <- Ваше мыло
    set network "Dalnet.ru" <- сеть, можно не указывать.

    Внимание, если вы будете устанавливать бота и хотите, чтобы у него был зарегистрированный ник и его никто не использовал добавьте:
    set init-server {putquick "PRIVMSG NickServ :IDENTIFY ПАРОЛЬ"}
    *где ПАРОЛЬ = это пароль, который указывался при регистрации Ника*

    Данную строку можно ввести в любую часть, например:
    set net-type 4

    listen 3333 all

    set owner "KROT_find"
    set admin "nick "
    set network "EggdropNet"

    set init-server {putquick "PRIVMSG NickServ :IDENTIFY 1234567"}

    Вот, вроде основные настройки установлены.
    Теперь запускаем бота, в шелле набираем ./eggdrop –m eggdrop.conf (Потом набирать без ключа –m, только ./eggdrop имя.conf)
    Бот запустился, сразу вам показывается порт (скорее всего 3333)

    Берём любую терминальную программу (например: Putty) и указываем адрес, порт (3333) и коннектимся через терминал к нашему боту.
    Из-за того что мы запустили бота с ключём –m он начинает подключаться к серверу, мы это увидем в окне терминала.
    В окне набираем команду NEW (для регистрации нового пользователя), тут вас попросят ввести логин и пароль для управления, которые вы будете использовать в будущем для управления ботом.

    Бот зашёл на канал, всё отлично – идём дальше.

    Основные модули для бота, возможности, скрипты.
    Что то такое модули? На этот вопрос я отвечу своими словами: Это те же самые скрипты выполняющие автономные функции, например: Подсчёт кто сколько сказал.
    Прописывать модули и скрипты надо в eggdrop.conf, в самом низу:
    ##### SCRIPTS #####

    # This is a good place to load scripts to use with your bot.

    # This line loads script.tcl from the scripts directory inside your eggdrop's
    # directory. All scripts should be put there, although you can place them where
    # you like as long as you can supply a fully qualified path to them.
    #

    # source scripts/script.tcl

    source scripts/название_скрипта.tcl
    source scripts/time.tcl
    source название_модуля.conf

    Существует множество модулей:
    Stats, статический модуль – считает кто сколько наговорил на канале, ведёт топ лучших “говорунов”, молчунов, а так же ещё имеет несколько возможностей.
    Gseen, поисковый модуль – показывает, когда интересующий вас человек покинул канал.
    Это основные модули и СКОРЕЕ всего они будут установлены сразу в вашей сборке.
    Есть ещё несколько модулей, но искать их вам надо самим.

    Как писать скрипты – я рассказывать не буду, кого это очень интересует изучите сами (Ссылки, где можно почитать о модулях, скриптах, изучить язык tcl я приведу в самом конце).

    Настройки бота для каналов.
    Когда вы всё настроили и запустили бота он сразу заходит на один канал, чтобы увеличить это кол-во наберите в терминале следующие команды:
    .+chan #channel <- Заставить бота на зайти на указанный канал
    .-chan #channel <- Заставить бота выйти с канала

    Другие важные команды:
    .restart <- Сделать рестарт вашему боту
    .die <- убить бота, потом надо будет через шелл его заново пускать

    После захода бота на канал, он сразу начинает выполнять команды, например: !stat …
    Данные команды очень раздражают посетителей, если каждый человек будет набирать данную команду то канал превратиться в помойку.

    Как сделать чтобы бот отвечал лично человеку (А не в общий канал), который ввёл команду модуля Stats:
    В терминалке наберите .chanset #канал +quietstats

    Как сделать чтобы бот отвечал лично человеку (А не в общий канал), который ввёл команду модуля Gseen:
    В терминалке наберите .chanset #канал +quietseens +quietaiseens

    Вот я описал самый минимум команд, самый минимум команд.
    Этой информации хватит лишь, чтобы запустить бота и установить его на канал.
    Если вам интересна эта тема и вы хотите изучить язык TCL, посетите ниже приведённые ссылки.

    Полезные ссылки.
    ftp://ftp.eggheads.org/pub/eggdrop/GNU/ (Исходные коды всех версий бота включая последнюю beta-версию)
    http://johoho.eggheads.org/eggdrop/ (Скомпиленные версии бота под разные платформы)
    http://www.unseen.org/~simpson/eggdrop/ - (Информационный сайт)
    http://windrop.sourceforge.net/ (Windrop версия ботов)
    http://forum.hack.su (Русскоязычный форум, где вам окажут помощь, а так же там вы найдёте много tcl скриптов)
    http://eggdrop.org.ru (Наверно самый крупный и самый известный русский ресурс о ботах)
    http://eggdrop.org.ru/scripts/ (Неплохой выбор скриптов)
    http://www. juravlev.inc.ru (Информационный сайт)

    Вот минимальный список сайтов, который лично я посещал для сбора информации и запуска своего первого бота.

    Так вот сразу пишу копирайты:

    Автор: r3bus
    Почта: admin[at]sunlim.net
    ICQ: 869968
    Сайт: http://www.sunlimited.ru