First adoption step for production use with telegram frontend
This commit is contained in:
38
README
38
README
@@ -3,39 +3,33 @@ aleesa-craniac
|
||||
Бредогенератор, основанный на цепях Маркова. Попутно сохраняет состояние цепей
|
||||
в sqlite-базу. Собственно, является "мозгом" aleesa bot-а.
|
||||
|
||||
|
||||
Механика работы
|
||||
------------------------------------------------------------------------------
|
||||
Бредогенератор подписан на все каналы, попадающие под шаблон "craniac:*" (без
|
||||
кавычек). Предполагается, что есть специальный канал "broadcast", на который
|
||||
подписываются все модули и, если надо, ответ в такой канал получают все.
|
||||
Бредогенератор подписан на redis-канал craniac. В этот канал пишет другой
|
||||
демоночек - aleesa-misc. Причём, особенность такова, что если aleesa-misc не
|
||||
распознала фразу как команду для другого модуля, то по-умолчанию такая фраза
|
||||
оправляется в канал craniac.
|
||||
|
||||
Формат протокола - это json с полями:
|
||||
from - модуль, который решил отправить запрос.
|
||||
chatid - чат, из которого сделан вызов
|
||||
userid - пользователь, на чью фразу мы отвечаем
|
||||
message - оригинальный текст сообщения
|
||||
plugin - плагин, нужный для генерации ответа
|
||||
misc->{answer} - 1 - ждём ответа на запрос, 0 - не ждём ответа (данные для
|
||||
добавления в цепи Маркова)
|
||||
У бредогенератора есть 2 типа входящих сообщений - ключевые фразы, на которые
|
||||
у него есть готовые ответы и остальные, для которых ему надо решить нужен ли
|
||||
ответ и по-необходимости сгенерировать его.
|
||||
|
||||
N.B.
|
||||
При запуске нового приложения, которое будет пользоваться этим
|
||||
бредогенератором, оно должно "поприветствовать" craniac-а по всем каналам, для
|
||||
того, чтобы сработала внутренняя логика и craniac подписался на новые каналы.
|
||||
Если этого не сделать, то первое сообщение по новому каналу будет "проглочено"
|
||||
и "потрачено" на подписку на этот канал.
|
||||
Ответ направляется в redis-канал, указанный в поле plugin входящего сообщения.
|
||||
|
||||
Формат протокола - см README от aleesa-misc.
|
||||
|
||||
|
||||
Как это запустить?
|
||||
------------------------------------------------------------------------------
|
||||
Понадобится perl, cpanm и local::lib, а также несколько разных devel-пакетов
|
||||
для разных библиотек. Как правило, это находится методом тыка, но точно
|
||||
понадобятся sqlite-devel, bdb-devel (или db-devel). Кроме того, понадобятся
|
||||
development tools - gcc, gcc-g++, perl-devel, make, cmake и так далее.
|
||||
понадобятся sqlite-devel, bdb-devel (или db-devel), hiredis-devel. Кроме того,
|
||||
понадобятся development tools - gcc, gcc-g++, perl-devel, make, cmake и так
|
||||
далее.
|
||||
|
||||
В каталоге с приложением под целевым пользователем запускаем bash bootstrap.sh
|
||||
Ждём с надеждой, что оно не обломится в пути.
|
||||
|
||||
Если всё хорошо, то после создания data/config.json из data/config_sample.json
|
||||
и получения ключей и настройки модулей openweathermap и flickr, можно
|
||||
запускать приложение. Оно запустится как unix daemon.
|
||||
Если всё хорошо, то после запуска redis-а, создания data/config.json из
|
||||
data/config_sample.json, можно запускать и само приложение.
|
||||
|
||||
Reference in New Issue
Block a user