Files
aleesa-craniac/README
2021-08-18 23:59:17 +03:00

42 lines
3.1 KiB
Plaintext

aleesa-craniac
------------------------------------------------------------------------------
Бредогенератор, основанный на цепях Маркова. Попутно сохраняет состояние цепей
в sqlite-базу. Собственно, является "мозгом" aleesa bot-а.
Механика работы
------------------------------------------------------------------------------
Бредогенератор подписан на все каналы, попадающие под шаблон "craniac:*" (без
кавычек). Предполагается, что есть специальный канал "broadcast", на который
подписываются все модули и, если надо, ответ в такой канал получают все.
Формат протокола - это json с полями:
from - модуль, который решил отправить запрос.
chatid - чат, из которого сделан вызов
userid - пользователь, на чью фразу мы отвечаем
message - оригинальный текст сообщения
plugin - плагин, нужный для генерации ответа
misc->{answer} - 1 - ждём ответа на запрос, 0 - не ждём ответа (данные для
добавления в цепи Маркова)
N.B.
При запуске нового приложения, которое будет пользоваться этим
бредогенератором, оно должно "поприветствовать" craniac-а по всем каналам, для
того, чтобы сработала внутренняя логика и craniac подписался на новые каналы.
Если этого не сделать, то первое сообщение по новому каналу будет "проглочено"
и "потрачено" на подписку на этот канал.
Как это запустить?
------------------------------------------------------------------------------
Понадобится perl, cpanm и local::lib, а также несколько разных devel-пакетов
для разных библиотек. Как правило, это находится методом тыка, но точно
понадобятся sqlite-devel, bdb-devel (или db-devel). Кроме того, понадобятся
development tools - gcc, gcc-g++, perl-devel, make, cmake и так далее.
В каталоге с приложением под целевым пользователем запускаем bash bootstrap.sh
Ждём с надеждой, что оно не обломится в пути.
Если всё хорошо, то после создания data/config.json из data/config_sample.json
и получения ключей и настройки модулей openweathermap и flickr, можно
запускать приложение. Оно запустится как unix daemon.