Блог о Gentoo и около-линуксовым штукам

29 марта 2017 г.

loperIRCLogBot

07:47 Опубликовал Дмитрий Исаенко , Нет комментариев
loperIRCLogBot - очередной бот для записи логов на канале IRC. Написан на С. Использует слегка модифицированную libircclient. Он может заходить на 1 сервер, 1 канал и писать всё что там происходит. Может собираться под openWRT и наверное под много чего ещё. В общем все подробности чуть ниже. Этот пост (наверное) будет обновляться по мере выхода новых версий.
Написанное верно для версии: 1.1.
А теперь документация в виде FAQ.
Он работает под Windows?
Нет.

А если я его соберу под Windows?
Всё ещё нет.

OS X, BSD, AIX?
Не знаю, может быть. Попробуй и расскажи потом.

Как собирать?
$ make

Оно не работает, и тут нет ./configure. Что мне делать? Почему это происходит со мной?
Измени Makefile и ./files/Makefile. Они там простые. Я не особо разбираюсь в том, что есть ./configure поэтому его там нет.

При компиляции я вижу "warning:". Это норма?
Ну, вроде того. Я тоже иногда вижу подобное. Надо будет найти время и что-то с этим сделать.

Где исполняемый файл? Что запускать?
$ ./bin/loperIRCLogBot

Что с лицензиями?
Исходный код, который фактически является лишь файлом loperIRCLogBot.c распространяется под лицензией GNU General Public License v.3. Ты можешь прочесть текст лицензии в файле LICENSE, (распространяется вместе с кодом) или посетив сайт https://www.gnu.org/ (там он определённо должен быть). Также приложение использует (немного) модифицированную libircclient написанную George Yunaev. Libircclient распространяется под лицензией GNU Lesser General Public License v.3 или более поздней.

Можно ли (собрать и) использовать эту программу вместе с динамической библиотекой libircclient, которая у меня уже установлена?
Нет. Эта маленькая модификация, которая нужна для работы loperIRCLogBot не позволяет использовать оригинальную немодифицированную библиотеку. Посмотри на патч в директории ./files (в нём вся суть).

Где указывать настройки и как?
В файле ./bin/bot.conf. Ты можешь сгенерировать шаблон выполнив 
$ ./loperIRCLogBot -g
Файл настроек должен храниться (и будет сгенерирован) в той же директории, что и исполняемый файл. Пока это единственный вариант.
Из файла настроек приложение читает лишь первые 15 строк, так что удостоверься, что ты не прописал ничего важного ниже первых 15 строк.
Вот пример:
server:          irc.example.com
channel:         #channel
port:            6667
nick:            awesome_nick_here
username:        usrname
realname:        realname
password:        0 
maxNickLength:   30
logPath:         0 
link:            http://localhost:8080/logs/
reJoin:          yes
'server' должен быть установлен в описанном выше формате. Никаких irc://, слэшей и бэкслешей быть не должно.
'channel' это канал, к которому нужно подключиться. Должен начинаться с символа решетки '#'.
'port' порт сервера
'nick' ник на сервере. Ограничен параметром 'maxNickLength'. Т.е. длина ника не должна превышать число символов, определённое в maxNickLength.
'username'  имя пользователя, которое устанавливается вторым параметром в нике-сервера. Например nick!~[USERNAME]@ip_adress
'realname' это реальное имя. Не спрашивай, просто поставь тут что-то, ладно?
'password' это пароль от ника. Он передаётся серверу в виде '/nickserv IDENTIFY [password]'. Если установлен '0', то пароль не передаётся.
'maxNickLength' это максимальная длина ника. Различные серверы ограничивают максимальную длину ника. Значения в '30' символов тут будет достаточно. Максимально допустимое значение - 128, но я не уверен что тебе следует использовать максимальное значение, потому, что если сервер не поддерживает ники подобной длины, то программа может выполняться неправильно.
'logPath' путь к директории ./logs где хранятся логи. Если '0' то они все будут храниться  в той же папке, что и исполняемый файл. Обрати внимание, что путь должен быть абсолютным, а не относительным. Недопустимо указывать что-то типа ~/logs или ../../logs.
'link' это ссылка, которая будет служить ответом, когда кто-то на канале начинает своё сообщения с ника бота. Если '0', то в ответ никакой ссылки они не получат. Только смайлик.
'reJoin' определяет, следует ли автоматически заходить на канал после кика. Если 'yes' то следует, если 'no' то нет.

Есть ли какие-то ещё опции у приложения?
Да. Когда ты запускаешь приложение, ему можно передать следующие ключи:
-g, --genconf — создаёт шаблон конфигурационного файла. ОСТОРОЖНО! Это действие перезапишет существующий конфигурационный файл.
-n, --nomessage — подавляет вывод сообщений (на stdin, stderr).
-v, --version — показывает версию программы.
--help — показывает помощь по ключам.
Обратите внимание, что '-n' просто отключает вывод сообщений. Там нет всяких специфичных для демонов опций. Пока.

Можно как-то зайти больше чем на один канал?
Неа.

Если пропадёт соединение, сможет ли бот переподключиться? Если да, то когда это произойдёт?
Да. Через 20 минут. Возможно раньше. Зависит от активности на канале и пингов от сервера. Предсказание этого сейчас реализовано крайне криво.

0 коммент.:

Отправить комментарий