Бот истины для Telegram
Описание
Бот для вычитывания сообщений из телеграмма и ответа по шаблону
Установка
CI поддерживает развертывание в контейнере докера, так же возможен запуск через ./src/main.go
Настройка
Для настройки используется файл settings.json в котором имеются секция с реакциями на сообщения и секция с вебхуками от сторонних сервисов. Структура settings.json представлена ниже
{
"events": [
],
"hooks": [
]
}
В событиях мы указываем объекты с полями triggrs - массивом условий при выполнении которых событие сработает, responses - набором действий, которые сделает бот, если событие произошло и опциональным флагом "randomResponse": true
при указании которого бот отреагирует только одним случайным ответом
{
"triggers": [
],
"responses": [
],
"randomResponse": true
}
В triggers мы указываем или объекты с полеми type - типом реакции regexp если надо реагировать просто на совпадение с регулярным выражением и unavoidableRegexp если надо реагировать на совпадение по регулярному выражению, которое попытаются обойти. В поле content надо указать само регулярное выражение. Так же можно указать ограничение по чату если type - chats, а в объекте есть массив идентификаторов чатов chats
{
"type": "unavoidableRegexp",
"content": "(опоссум|ежик)"
},
{
"type": "chats",
"chats": [-123, -321]
}
В реакциях-ответах мы указывае опциональное поле "target": "self"
если это должен быть ответ на сообщение-тригер, type с типом ответа: sticker/text/voice и content: для стикера или голосового сообщения это его идентификатор, для текст - сам текст
{
"target": "self",
"type": "sticker",
"content": "какой-то ID стикера"
}
Так же возможен ответ http запросом если type указан как httpRequest. Тогда в поле method необходимо указать http-метод, в url - адрес ресурса, а в content - тело запроса с возможностью указать части из сообщения-тригера как %2% (в данном случае второе слово из исходного сообщения).
{
"type": "httpRequest",
"method": "PUT",
"url": "http://127.0.0.1:8080/instruments",
"content": "{\"tiker\": \"%2%\",\"active\": true}"
}
В вебхуках мы указываем объекты с url - адресом для GET запроса новых сообщений и chat - с указанием id чата
{
"chat": -123,
"url": "http://127.0.0.1:8080/events"
}
Переменные окружения
Переменная |
Описание |
Обязательная |
Значение по умолчанию |
BOT_TELEGRAM_BOT_TOKEN |
Токен бота Telegramm |
Да |
|
BOT_CHECK_MESSAGE_SECONDS |
Задержка проверки новых сообщений |
Нет |
5 секунд |
BOT_DEBUG |
Режим отладки, надо установить "y" для расширенного вывода в консоль |
Нет |
Ложь |