Initial commit
This commit is contained in:
51
README.md
Normal file
51
README.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Документация по Aleesa-bot
|
||||
|
||||
Documentation is in Russian language because of project intended for use and develop by russian speaking community.
|
||||
|
||||
## Что такое Aleesa-bot
|
||||
|
||||
Многосервисный бот. Сервисы для которого достаточно просто реализовывать на различных ЯП, потому что используются
|
||||
универсальные форматы общения между различными компонентами системы.
|
||||
|
||||
## Зачем это нужно
|
||||
|
||||
Пока, как концепт бота, который умеет в несколько разных протоколов.
|
||||
|
||||
## Архитектура проекта
|
||||
|
||||
Архитектура бота предполагает наличие роутера, фронтэнда и бэкэнда.
|
||||
|
||||
В текущей схеме реализованы фронтэнды для telegram, irc, jabber и cli протоколов. А также для бэкэнда реализованы
|
||||
бредогенератор, простые веб-клиенты для разных сервисов, и некоторые другие бэкэнд-обработчики.
|
||||
|
||||
### Роутер
|
||||
|
||||
Во главе угла стоит роутер сообщений. Он принимает сообщения от фронт-энд-ов (если требуется, обрабатывает их)
|
||||
и направляет их в соответствующие обработчики на бэкэнде. Взаимодействие происходит по каналам redis pub-sub.
|
||||
|
||||
N.B. Поскольку обмен сообщениями между компонентами происходит в формате json, необходимо, чтобы этот json был
|
||||
валидным: числа были числами, а не строками. По соображениям совместимости не используются значения true и false, т.к.
|
||||
в некоторых яп при формировании json-а они могут стать 1 и 0, "true" и "false", "ok" и "false", "yes" и "no", что не
|
||||
является валидным с точки зрения json-а.
|
||||
|
||||
### Фронт-энд
|
||||
|
||||
Фронт-энд части реализуют протоколы чатиков - irc, telegram, jabber итд. Принятые из чятиков сообщения всегда
|
||||
отправляются в redis-канал роутера, по протоколу redis pubsub.
|
||||
|
||||
### Бэк-энд
|
||||
|
||||
Бэкэнд принимает в свой канал сообщения и обрабатывает их. В зависимости от того, требуется ли ответ, отвечает в канал
|
||||
из поля From.
|
||||
|
||||
Предполагается, что входное сообщение бэк-энд обработчик получает от роутера, но это не обязательно так (на текущий
|
||||
момент все бэк-энд-обработчики получают входящие сообщения от роутера).
|
||||
|
||||
Предполагается, что бэкэнд отвечает непосредственно отправителю (то есть фронтэнду), но это не обязаетельно так (на
|
||||
текущий момент все бэк-энд-обработчики отвечают изначальному отправителю сообщения).
|
||||
|
||||
## Что делает Aleesa-bot-а интересным
|
||||
|
||||
То, что реализовывать дополнительные сервисы можно на любом ЯП. + добавить простенькую логику по отлову и направлению
|
||||
сообщения в рооутере (Впрочем, это не сложно и даже питонист сможет по образу и подобию реализованного, написать свой
|
||||
роут).
|
||||
Reference in New Issue
Block a user