powered by PircBotX
Из реализованных функций:
- Пинг
- Приветствие входящих пользователей
- Калькулятор с возможностью вычислять выражения с переменными
- Проверка регулярных выражений
- Выдача советов от сервиса fucking-great-advice
- Автопостинг названия URL при его появлении в чате
- Викторины - предоставлены сервисом baza-otvetov.ru
- Выдача случайной цитаты из сервиса Bash.Org / Bash.im
- Авторелогин после кика. Бывают ситуации, когда другой бот автоматически кикает моего бота (в канале #lor на freenode, например).
- Система отложенных сообщений. Можно написать
?tell <username|me> your phrase here
, и бот доставит это сообщение указанному пользователю, когда он напишет в чат - Грамматический контроль и коррекция
Поиск Google- Поиск DuckDuckGo
- Интерактивная справка
- Реализована интерактивная справка - команда
?h
или?help
- Поиск Google - заменен на поиск DuckDuckGo
- Добавлена статистика по сообщениям
- Добавлена возможность администрирования бота из чата канала
- Добавлена возможность забыть все отложенные сообщения для пользователя
- Добавлена возможность прочитать разом все отложенные сообщения для пользователя - отправляются в приват
- Добавлена возможность администрирования бота через приватные сообщения к нему
- Портирован на SpringBoot 2 (NB! перед запуском бота версии 2.0.0 необходимо запустить скрипт в базе: /srv/main/resources/sql/update_to_2.0.0.sql)
- Добавлена возможность коннекта бота к нескольким серверам
- Добавлен поиск Google
- Добавлен модуль грамматического контроля и коррекция
- К боту подключена БД (сейчас PostgreSQL).
- Реализованы индивидуальные настройки возможностей бота для каждого канала - хранится в БД
- Реализована система отложенных сообщений
- JDK версии 1.8
- Maven
- PostgreSQL версии 9.4-9.6 (на других не проверялся) - настройки подключения находятся в файле
\src\main\resources\application.yml
По-умолчанию PostgreSQL расположен на localhost, должен быть создан пользователь jircbot
с паролем jircbotpass
, и он должен быть владельцем базы jircbot
.
> git clone https://github.com/bvn13/JIrcBot.git
Cloning into 'JIrcBot'...
remote: Counting objects: 615, done.
remote: Compressing objects: 100% (199/199), done.
Receiving objects: 83% (511/615), 76.01 KiB | 65.00), pack-reused 167Receiving objects: 82% (505/615), 76.01 KiB | 65.00 KiB/s
Receiving objects: 100% (615/615), 111.97 KiB | 72.00 KiB/s, done.
Resolving deltas: 100% (253/253), done.
> cd JIrcBot
> mvn clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jircbot 1.1.2
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ jircbot ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ jircbot ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ jircbot ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 41 source files to C:\dev\test\JIrcBot\target\classes
[WARNING] /C:/dev/test/JIrcBot/src/main/java/ru/bvn13/jircbot/config/JircBotConfiguration.java: C:\dev\test\JIrcBot\src\main\java\ru\bvn13\jircbot\config\JircBotConfiguration.java uses unchecked or unsafe operations.
[WARNING] /C:/dev/test/JIrcBot/src/main/java/ru/bvn13/jircbot/config/JircBotConfiguration.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ jircbot ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\dev\test\JIrcBot\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ jircbot ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ jircbot ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ jircbot ---
[INFO] Building jar: C:\dev\test\JIrcBot\target\jircbot-1.1.2.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.6.RELEASE:repackage (default) @ jircbot ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17.916 s
[INFO] Finished at: 2018-02-08T10:35:43+03:00
[INFO] Final Memory: 33M/287M
[INFO] ------------------------------------------------------------------------
В файле config.json в корне проекта хранятся настройки. Укажите сервер, имя бота и каналы, на которые он должен заходить.
{
"version" : "1.0",
"connections" : [
{
"enabled" : true,
"server" : "irc.freenode.net",
"port" : 6667,
"channelsNames" : ["#voidforum", "#lor"],
"botName" : "jircbot"
},
{
"enabled" : true,
"server" : "irc.mozilla.org",
"port" : 6667,
"channelsNames" : ["#voidforum", "#lor"],
"botName" : "jircbot"
}
]
}
Для Linux можно использовать модуль SystemD, который лежит в корне проекта. Конфигурационный файл должен лежать рядом с файлом .jar
[Unit]
Description=JIrcBot
After=network.target
[Service]
User=bvn13
WorkingDirectory=/srv/jircbot
ExecStart=/usr/bin/java -jar /srv/jircbot/jircbot-1.1.2.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
В противном случае можно использовать запуск из командной строки.
> java -jar target/jircbot-1.1.2.jar