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.