music

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » music » ИНФОРМАЦИЯ » Боты windrop/eggdrop


Боты windrop/eggdrop

Сообщений 1 страница 2 из 2

1

-----=# Что такое Eggdrop #=-------------------------------------------------

Eggdrop это IRC-бот написанный на C, но также имеющий начинку основанную на языке TCL (Tool Command Language) для написания скриптов расширения. Следует, однако, помнить и о том, что бот имеет API для создания внешних модулей на C, которые будут работать намного быстрее, чем TCL-скрипты, но менее удобны в написании и использовании, так как при внесении изменений в них, вам потребуется перекомпилировать сам модуль, или даже весь Eggdrop, если вы его компилируете, как Static.
-----=# Что нужно для работы #=----------------------------------------------

Для работы бота Eggdrop необходим shell. Shell'ом называют наличие доступа к серверу (обычно Unix-серверу) на котором у вас есть право работать как пользователь (закачивать, удалять, создавать, копировать файлы и, конечно же запускать). Обычно, shell-account можно получить следующими путями: 1) Купить (большинство крупных провайдеров продают shell-account'ы) 2) Взять бесплатно (выиграть, взломать, украсть) 3) Взять у знакомых владельцев серверов (обычно, все так и делают) 4) "Поднять" свой сервер (или запустить бота на локальной машине, которая 24h в сети) Совсем необязательно иметь Unix-машину для запуска бота, можно это делать и под AmigaOS, и под Windows.
-----=# История Eggdrop #=---------------------------------------------------

Первый релиз бота Eggdrop для широкого применения появился в декабре 1993 года. Тогда это была версия 0.6 и ее автор был, теперь уже небезызвестный, Роби Поинтер (Robey Pointer). Есть данные, что бот Eggdrop "родился" из бота, который носил имя Unrest. А работа над Eggdrop до версии 0.6 велась несколько лет. С тех пор, Eggdrop является самым продвинутым и многофункциональным ботом для IRC. Для него написано более десятка тысяч скриптов расширяющих его возможности. До версии 1.2 бота разрабатывал сам Роби, а с версии 1.3 его заменила команда Белдина (Beldin's development team). Эти же ребята пытались сделать заведомо неудачный проект Eggdrop2. Народу не понравились те нововведения и глюки, которых было в избытке, поэтому Eggdrop2 так и "умер" не родившись. Активность Белдина завершилась на версии 1.3.23 Дальнейшую разработку Eggdrop решила взять на себя команда Eggheads. В большинстве своем состоявшая из активных пользователей бота. Исходный код был выложен на CVS (Concurrent Version System), где и велась работа над ним. На данный момент времени они до сих пор и ведут этот проект. Сейчас существует две ветви развития Eggdrop: 1.6 - отлаженые версии бота для повседневного использования (STABLE) 1.7 - экспериментальные версии (DEVELOPMENT). Бот переписан "с нуля", добавлена модульная система поддержки различных языков программирования (теперь скрипты можно писать не только на TCL), и прочие значительные изменения. Заметка: название Eggdrop было взято из кулинарной книги, где давался рецепт приготовления "Eggdrop soup".
-----=# Где взять Eggdrop #=-------------------------------------------------

ftp://ftp.eggheads.org/pub/eggdrop/GNU/ Исходные коды всех версий бота включая последнюю beta-версию http://johoho.eggheads.org/eggdrop/ Скомпиленные версии бота под разные платформы Также можно скачать самую свежую версию бота используя систему CVS. Обычно это делается для того, чтобы можно было отлавливать баги в еще невыпущенных версиях бота и сообщать их разработчикам. Ну, а также иметь в своем распоряжении самую последнюю версию бота. Если же вы все-таки просто используете Eggdrop, я бы вам не рекомендовал работать на версиях с CVS, так как это все-таки девелоперские (возможно, нестабильные) версии. Но если вы хотите скачать последнюю версию с CVS, вам необходимо иметь установленный пакет для работы с CVS-системой. Обычно все операционные системы класса Unix оснащены им. Наличие можно проверить набрав в shell команду: cvs Если система сказала, что-то типа "command not found", это значит, что у вас не установен пакет поддержки CVS. Установите его. Если же вы увидели вывод встроенного help команды cvs, то все в порядке. В unix-shell наберите: 1) 'export CVSROOT=:pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot' 2) Затем наберите 'cvs login' 3) На запрос пароля нажмите <enter> 4) Наберите 'cvs checkout eggdrop1.6' (или нужную версию) 5) Далее произойдет обновление исходников в вашу локальную директорию 6) После завершения наберите 'cvs logout' В дальнейшем можно будет просто заходить в локальную директорию с исходниками и набирать 'cvs update' для автоматического обновления уже без использования приведенных выше шагов.
-----=# Компиляция #=--------------------------------------------------------

Для сборки Eggdrop вам обязательно необходим и TCL (язык программирования, который используется в ядре бота). Проверить наличие TCL можно набрав в shell команду: tclsh Если вы получите приглашение в виде символа "%", значит TCL есть. Если нет, то установите. Рекомендуемые к установке версии TCL: 8.0.x или 8.3.x Скачать TCL в исходниках можно с ftp-сайта: ftp://ftp.scriptics.com/pub/tcl/ Порядок сборки TCL: 1) Распакуйте архив с TCL (tar -zxf tcl8.x.x.tar.gz) 2) Зайдите в директорию с нужной платформой (cd tcl8.x.x/unix) 3) Наберите './configure' 4) Наберите 'make' 5) Наберите 'make install' И в /usr/local/lib появится libtcl8.x.x.so, в /usr/local/include директория tcl8.x.x, а в /usr/local/bin tcl-shell tclsh. Однако может наилучший вариант это установить TCL из пакета (rpm, tgz, deb). А вот Eggdrop лучше собирать самому, так как все зависит от того, как вы хотите потом использовать бота. Собрать Eggdrop можно в двух видах: Static - будет занимать меньше, чем eggdrop + dynamic-модули, и будет в одном файле. Таким образом менять версию бота для тестов или проверок намного проще, так как менять надо всего лишь один файл. А также, если ваш бот запускается в одном экземпляре и больше нет никаких других ботов запускающихся из этой же директории, то этот вид сборки тоже будет лучшим вариантом. Dynamic - будет в виде нескольких файлов (сам eggdrop и модули) и займет чуть больше, из-за заголовков и служебной информации в скомпилированных файлах. Но динамик выигрывает за счет экономии памяти при запуске нескольких ботов. Если запустить несколько ботов, то память будет общей. А также dynamic-модули можно загружать/выгружать на лету. Последовательность для сборки бота такова: 1) Скачать бота с сайта или ftp (архив будет с именем eggdrop-1.x.x-tar.gz) 2) Если не установлен TCL - скачать и поставить (установить можно как из исходников, так и из пакетов tgz, rpm, deb и т.п.) 3) Развернуть архив с ботом в нужную директорию. (tar -zxf <имя архива>) 4) Далее обычно хватает команды: ./configure Но если собирать нужно с конкретной версией TCL, то указывайте: ./configure --with-tcllib=<path>/libtcl8x.so --with-tclinc=<path>/tcl.h Где "x" нужный номер версии библиотеки. 5) Для автоматического подключения модулей: make config Для ручного подключения модулей: make iconfig 6) Для сборки бота как dynamic (обычно): make Для сборки бота как static: make static 7) make install DEST=<path> (для установки)

0

2

-----=# Конфигурирование бота #=---------------------------------------------

Сразу после этого, бота необходимо сконфигурировать для того, чтобы его можно было запустить. Для этого скопируйте или переименуйте eggdrop.conf.complete в eggdrop.conf и откройте его редактором. И начинайте настраивать: 1) Установить путь до Eggdrop: #! <path>/eggdrop 2) Установить username бота: set username 3) Установить адрес владельца бота: set admin 4) Настроить или отключить логи: logfile 5) Установить имя файла пользователей: set userfile 6) Установить порт/порты для сетевых соединений: listen 7) Убрать или закомментировать строку: die "Please edit your config file." 8) Установить имя файла каналов: set chanfile 9) Отключить (или заменить на свои) все настройки для канала #lamest 10) Отключить (или заменить на свои) настройку для канала #botcentral 11) Установить ник бота: set nick 12) Установить альтник бота: set altnick 13) Установить строку для whois на боте: set realname 14) Установить адрес(а) IRC-сервера(ов): set servers 15) Настроить пути для файловой системы (только если активен модуль filesys): set files-path и set incoming-path 16) Установить путь файла для записок (только если активен модуль notes) set notefile 17) Убрать или закомментировать строку: die "You didn't edit your config file like you were told, did you?" 18) Раскомментировать строку: #checkmodule blowfish 19) Отключить/подключить скрипты: source scripts/* Естественно вы можете настраивать и все остальное, но этот тот минимум, чтобы запустить бота и начать работу над ним. Заметка: если вы уже имеете хорошо настроенного бота и хотите поставить свежую версию. То наверняка зададитесь вопросом: "А что нового было добавлено в конфиг?". Узнать это нам поможет команда "diff", которая есть во всех unix-системах. Для этого вам потребуются два eggdrop.conf.complete, из старого дистрибутива и нового. Положите их вместе как: eggdrop.conf.old и eggdrop.conf.new После этого запустите команду: diff eggdrop.config.old eggdrop.config.new > eggdrop.config.changes И в файле eggdrop.config.changes вы получите все изменения. Заметка: если вам часто приходится добавлять/удалять скрипты в конфиг, и приходится очень долго "ползать" в конец огромного конфига, то есть способ упростить вам жизнь. Создайте файл eggdrop.scripts (там же где и eggdrop.conf) и поместите в него все вызовы (source scripts/<имя скрипта>). А в самом конфиге их удалите и поместите в конце всего одну строку: source eggdrop.scripts Теперь все изменения по скриптам делайте только в eggdrop.scripts
-----=# Настройка CronTab #=-------------------------------------------------

Для того, чтобы не произошло ситуации, когда ваш бот по какой-то причине завершил работу, был закрыт или просто "упал процесс" - существует система его автоматического запуска. Работает она на базе Cron (стандартное средство Unix-систем). Для настройки себе этой системы, можно пойти двумя путями: 1) Настроить файл botchk В комплекте с ботом идет файл "botchk". Скопируйте его туда, где лежит сам бот и его конфиги. Зайдите в него редактором и настройте поля: botdir="/home/eggdrop" Путь до директории с ботом. botscript="eggdrop mybot" Файл бота. Если вы пускаете бота сразу из eggdrop, то напишите просто "eggdrop". Если из отдельного файла конфига, то "eggdrop <имя файла>" botname="MyBot" Ник бота. ОБЯЗАТЕЛЬНО с соблюдением больших и маленьких букв. userfile="mybot.user" Имя файла с пользователями. Смотри настройку бота. Затем (под root'ом) зайдите редактором в /etc/crontab и добавьте строку: Для проверки каждую минуту: * * * * * /<путь>/botchk Для проверки каждые 5 минут: */5 * * * * /<путь>/botchk Для проверки каждые 10 минут: 0,10,20,30,40,50 * * * * /<путь>/botchk Для проверки каждые 15 минут: 0,15,30,45 * * * * /<путь>/botchk Для проверки каждые 30 минут: 0,30 * * * * /<путь>/botchk Если вы не хотите, чтобы бот писал о своих падениях вам на email, то добавьте в конец строки еще этот кусок: ">/dev/null 2>&1" (без "") Пример: */5 * * * * /home/eggdrop/botchk >/dev/null 2>&1 2) Построить свой botchk используя autobotchk Также в комплекте с ботом идет скрипт для автоматической генерации файла botchk. Для его использования также скопируйте его туда же, где лежит бот. И запустите с указанием имени конфига: ./autobotchk <имя конфига> Также можно сразу указать интервал времени для проверки и слать ли почту при падении: ./autobotchk <имя конфига> -noemail -5 Скрипт сам установит правильные ник бота и пути до него, а также сам "пропишется" в CronTab (если для этого у него хватит прав).
-----=# Запуск #=------------------------------------------------------------

Первый запуск бота обязательно делайте "вручную" и с указанием аргумента для создания файла пользователей "eggdrop -m". Иначе без этого файла бот вообще не будет работать. Порядок действий таков: 1) Запустить бота 'eggdrop -m' 2) Дождавшись его появления на IRC дать команду: '/msg <ник бота> hello' Если бот долго не приходит на IRC, ищите причину. Просмотрите логи. Запустите его еще с ключами "-nt". 3) После того как бот вас объявил владельцем, установите себе пароль: '/msg <ник бота> pass <пароль>' 4) Зайдите на partyline используя DCC Chat-соединение с ботом и установленный только что пароль. 5) В partyline дайте команду: .die После чего бот отключится. После этого запуск с ключом "-m" используйте ТОЛЬКО для создания нового (пустого) файла пользователей. Заметка: Помните! Если вы случайно или специально запустите бота применив ключ "-m", то он уничтожит старый файл пользователей. Сообщения об ошибках при запуске: "Hostname self-lookup failed" Бот не может определить свой hostname. Задайте его вручную, прописав в конфиге: set my-hostname <hostname> и set my-ip <ip> "Please select an encryption module" Вы забыли активизировать модуль blowfish. Найдите в конфиге строку со словами "checkmodule blowfish" и уберите перед ней символ "#" (то есть, раскомментируйте строку) Если такой строки не нашли - создайте ее. "Couldn't grab nearby port" Это означает, что бот не может открыть сокет на данном порту. Это может случиться, если: a) порт указанный в конфиге занят и конфликтует с другими программами  неверные установки set my-hostname и set my-ip в конфиге c) если в каталоге лежит файл pid.<botnick> Проблема "a" решается сменой порта на другой. Проблема "b" решается исправлениями переменных в конфиге. Проблема "c" решается удалением файла. Если ничего не помогло, то просто закомментируйте строку с "listen", но это отключит возможность соединять бот с другими ботами (Botnet) и работать с ним через telnet. "No userfile found" или "No channel file found" Отсутствует или недоступен файл пользователей. Отсутствие исправляется запуском с ключем "-m". Подробнее читай выше. Недоступность может быть вызвана неверными правами доступа к файлу. Установите их в 0644 (rw-r--r--). Если проблема не исчезла, пропишите в строке конфига: set userfile-perm 0644

0


Вы здесь » music » ИНФОРМАЦИЯ » Боты windrop/eggdrop


Рейтинг форумов | Создать форум бесплатно