Skip to content

Red-Cadets/courier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Посыльный

Робот-посыльный

Данный бот предназначен для универсального оповещения пользователей в телеграм из различных сервисов.

Примеры применения:

  • Оповещение организаторов из сервисов по мониторингу систем (ELK, Alert manager)

  • Изменения в турнирной таблице из парсеров борды

  • Сообщения о firstblood'ах из CTFd

Установка

Для установки необходимо:

  • создать телеграм бота в @BotFather

  • установить вебхуки с доменом, на сервере которого будет развернут бот

  • настроить проксирование nginx на порт бота

  • в корне проекта создать файл .env и заполнить его необходимыми параметрами (пример в .env.example)

  • выполнить команду docker-compose up --build -d

API

Для общения с ботом необходимо отправить запрос на URL/SECRET_KEY со следующими JSON полями:

  • message - основные данные, которые пришлет бот. (ОБЯЗАТЕЛЬНОЕ ПОЛЕ)

  • id - название сервиса, с которого идет отправка. Необходимо для заглушки слишком спамящих сообщений

  • type - тип отображения сообщения в телеграмм. Доступные типы:

    • plain - без форматирования (ПО ДЕФОЛТУ и в случае ошибок отображения других)
    • file - отправляет файл с сервера с названием из поля data
    • markdown
    • html
  • to - адресат сообщения. Может быть:

    • MAIN - главный чат
    • DEV - dev чат (ПО ДЕФОЛТУ)
    • ID пользователя/чата в телеграм

    Переменные MAIN и DEV задаются в настройках бота

Примеры запросов

  • Отправить сообщение "TEST" в DEV чат
{
    "message": "TEST"
}
  • Отправить жирное сообщение "TEST", с ID "Test-service", типом "markdown", пользователю с TelegramID 445313647
{
    "message": "**TEST**",
    "id": "Test-service",
    "type": "markdown",
    "to": "445313647"
}

Команды

Бот имеет встроенные команды (для удобства их можно добавить в @BotFather). Следует обратить внимание на функционал заглушки сервисов. Он предназначен для того, чтобы на стороне бота заглушать неинформативные сообщения, которые сервисы могут отправлять слишком часто.

Список команд:

  • /help - Список доступных команд
  • /info - Выбранные чаты (DEV/MAIN)
  • /init - Обозначить текущий чат как MAIN
  • /services - Показать все доступные сервисы
  • /clear - Отчистить список сервисов
  • /muted - Показать сервисы с отключенными оповещениями
  • /unmuted - Показать сервисы с включенными оповещениями
  • /mute *service_name* - Заглушить сервис по названию
  • /unmute *service_name* - Включить оповещения для сервиса по названию
  • /mute - Заглушить последний сервис
  • /unmute - Включить оповещения для последнего сервиса

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published