Now it is aleesa-telegram

This commit is contained in:
eleksir
2022-01-28 21:01:32 +03:00
parent e135ef7d7c
commit 3eceeaf028
5 changed files with 46 additions and 96 deletions

35
README Normal file
View 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

View File

@@ -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

View File

@@ -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

View 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
}