Now it is aleesa-telegram
This commit is contained in:
35
README
Normal file
35
README
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
aleesa-telegram
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------
|
||||||
|
Сервис для aleesa-bot, работающий с мессенджером Telegram.
|
||||||
|
|
||||||
|
С остальными сервисами aleesa-bot работает по протоколу Redis pub-sub.
|
||||||
|
|
||||||
|
|
||||||
|
Механика работы
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------
|
||||||
|
Сервис подписан на pub-sub redis-канал telegram. В этот канал пишут остальные сервисы aleesa-bot-а ответ на запросы
|
||||||
|
этого сервиса.
|
||||||
|
|
||||||
|
Формат протокола общения по redis pub-sub - см README от aleesa-misc.
|
||||||
|
|
||||||
|
|
||||||
|
Как это запустить?
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------
|
||||||
|
Понадобится perl, cpanm и local::lib, а также несколько разных devel-пакетов для разных библиотек. Как правило, это
|
||||||
|
находится методом тыка, но точно понадобятся zlib-devel, openssl-devel, hiredis-devel. Кроме того, понадобятся
|
||||||
|
development tools - gcc, gcc-g++, perl-devel, make, cmake и так далее.
|
||||||
|
|
||||||
|
Приложение тестировалось на alpine linux x86_64 3.12, со встроенным perl-5.32.1
|
||||||
|
|
||||||
|
В каталоге с приложением под целевым пользователем запускаем bash bootstrap.sh Ждём с надеждой, что оно не обломится в
|
||||||
|
пути.
|
||||||
|
|
||||||
|
Если всё хорошо, то после создания data/config.json из data/config_sample.json и можно запускать приложение. Оно
|
||||||
|
запустится как unix daemon.
|
||||||
|
|
||||||
|
В каталоге contrib находится скрипт для alpine linux, системы инициализации openrc. Этот скрипт достаточно положить В
|
||||||
|
/etc/init.d/aleesa-telegram сконфигурить сервис по инструкции выше и после этого сервис запускается командой:
|
||||||
|
service aleesa-telegram start
|
||||||
|
|
||||||
|
в автозагрузку его можно прописать через команду:
|
||||||
|
rc-update add aleesa-telegram default
|
||||||
48
README.md
48
README.md
@@ -1,48 +0,0 @@
|
|||||||
# Aleesa-Telegram-bot - Telegram chatty bot
|
|
||||||
|
|
||||||
## About
|
|
||||||
|
|
||||||
It is based on Perl modules [Telegram::Bot][1] and [Hailo][2] as conversation
|
|
||||||
generator.
|
|
||||||
|
|
||||||
I have to fork [Telegram::Bot][1] and update it according to features appeared
|
|
||||||
in [Telegram Bot API v5][3]. Also, I decide to rename it to avoid collision in
|
|
||||||
the future, now it is Teapot::Bot and is bundled with bot. When lib becomes
|
|
||||||
mature enough, maybe I release it separately.
|
|
||||||
|
|
||||||
Bot config located in **data/config.json**, sample config provided as
|
|
||||||
**data/sample_config.json**.
|
|
||||||
|
|
||||||
Bot can be run via **bin/aleesa-telegram-bot** and acts as daemon (double
|
|
||||||
fork() and detaches stdio).
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
In order to run this application, you need to "bootstrap" it - download and
|
|
||||||
build all required dependencies and libraries.
|
|
||||||
|
|
||||||
You'll need perl-5.18 or newer, "Development Tools" or similar group of
|
|
||||||
packages, perl, perl-devel, perl-local-lib, perl-app-cpanm, sqlite-devel,
|
|
||||||
zlib-devel, openssl-devel, libdb4-devel (Berkeley DB devel), make,
|
|
||||||
hiredis-devel.
|
|
||||||
|
|
||||||
After installing required dependencies it is possible to run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
|
|
||||||
bash bootstrap.sh
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
and all libraries should be downloaded, built, tested and installed.
|
|
||||||
|
|
||||||
## Running
|
|
||||||
|
|
||||||
This bot does not [ultilize][4] webhooks, so in order to run it only well
|
|
||||||
internet connection is required, no public-available ip address is needed.
|
|
||||||
|
|
||||||
|
|
||||||
[1]: https://metacpan.org/pod/Telegram::Bot
|
|
||||||
[2]: https://metacpan.org/pod/Hailo
|
|
||||||
[3]: https://core.telegram.org/bots/api
|
|
||||||
[4]: https://core.telegram.org/bots/api#getting-updates
|
|
||||||
48
README_RU.md
48
README_RU.md
@@ -1,48 +0,0 @@
|
|||||||
# Aleesa-Telegram-bot - Болтливый бот для Telegram
|
|
||||||
|
|
||||||
## Что это такое
|
|
||||||
|
|
||||||
Это бот, основанный на перловых модулях [Telegram::Bot][1] для работы в
|
|
||||||
мессенджере Telegram и [Hailo][2] для генерации "умной" беседы.
|
|
||||||
|
|
||||||
Для корректной работы, пришлось форкнуть [Telegram::Bot][1], чтобы обновить
|
|
||||||
интерфейс API до [Telegram Bot API v5][3]. Для избежания неоднозначностей, модуль
|
|
||||||
пришлось переименовать и теперь он идёт в составе бота. Возможно, когда модуль
|
|
||||||
отлежится и будет похож на стабильный, он стнет самостоятельным и поселится на
|
|
||||||
metacpan.org
|
|
||||||
|
|
||||||
Конфиг бота должен лежать в **data/config.json**. Пример конфига расположен в
|
|
||||||
**data/sample_config.json**.
|
|
||||||
|
|
||||||
Бота можно запустить через **bin/aleesa-telegram-bot** и он взлетит, как юниксовый
|
|
||||||
демон (сделает двойной fork() и отцепится от stdio).
|
|
||||||
|
|
||||||
## Установка
|
|
||||||
|
|
||||||
Чтобы запустить приложение, его надо "забурстрапить" - загрузить и собрать все
|
|
||||||
необходимые зависимости.
|
|
||||||
|
|
||||||
Понадобится perl-5.18, а желательно новее, "Development Tools" или подобная
|
|
||||||
группа пакетов , perl, perl-devel, perl-local-lib, perl-app-cpanm, sqlite-devel,
|
|
||||||
zlib-devel, openssl-devel, libdb4-devel (Berkeley DB devel), make, hiredis-devel.
|
|
||||||
|
|
||||||
После установки этих пакетов, можно будет запустить:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
|
|
||||||
bash bootstrap.sh
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
и, по идее, всё что нужно будет выкачено, собрано и разложено куда надо.
|
|
||||||
|
|
||||||
## Запуск и работа
|
|
||||||
|
|
||||||
Бот не использует [вебхуки][4], поэтому ничего дополнительного, кроме хорошего
|
|
||||||
подключения к интернету ему не нужно.
|
|
||||||
|
|
||||||
|
|
||||||
[1]: https://metacpan.org/pod/Telegram::Bot
|
|
||||||
[2]: https://metacpan.org/pod/Hailo
|
|
||||||
[3]: https://core.telegram.org/bots/api
|
|
||||||
[4]: https://core.telegram.org/bots/api#getting-updates
|
|
||||||
11
contrib/aleesa-telegram.openrc
Normal file
11
contrib/aleesa-telegram.openrc
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/sbin/openrc-run
|
||||||
|
|
||||||
|
name="$SVCNAME"
|
||||||
|
command="/var/lib/$SVCNAME/bin/$SVCNAME"
|
||||||
|
pidfile="/var/run/$SVCNAME/$SVCNAME.pid"
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
need net redis
|
||||||
|
use dns
|
||||||
|
after redis
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user