Skip to content

3dquattro/availabilitybot_mk2_public

Repository files navigation

Availability-bot MK2 - Бот-пинговалка

Описание

Микроприложение, реализующее функционал телеграм-бота, осуществляющего пинг-запросы к критическим ресурсам и сигнализирующего в случае их недоступности. Требовалось реализовать телеграм-бота, непрерывно фукнционирующего, с возможностью добавления, удаления ресурсов, запуска/отключения рассылки и записью/записи информации о недоступности какого-либо ресурса в журнал.

Требования к коду:

  1. Соответствие PEP8
  2. Читаемость
  3. Документированность
  4. Отсутствие критических замечаний со стороны pylint
  5. Асинхронность
  6. Надежность

Технологии:

  1. aiogram - основа, для взаимодействия с Telegram;
  2. ping3 - библиотека-пинговалка;
  3. Celery - для запуска и выполнения асинхронных задач;
  4. Redis - хранение задач и сообщений для отправки в рамках обмена между Celery и aiogram;
  5. SQLModel - ORM-библиотека для упрощения взаимодействия с БД;
  6. PostgreSQL - база данных, где хранится информация о пользователях, ресурсах и журнал записей;
  7. Docker/docker-compose - деплой приложения.

Структура приложения:

  1. config/conf.py - конфигурация бота (в случае разворачивания без docker/docker-compose параметры взаимодействия с БД необходимо править там)
  2. models.py - ORM-модели (SQLModel)
  3. main.py - модуль приложения, где содержится основная логика, по совместительству, входная точка.

Команды

  1. /start - записывает чат или начинает рассылку, если чат уже записан
  2. /stop - останавливает рассылку
  3. /add_resource - команда, осуществляющая в три шага запрос информации о ресурсе для пингования и последующую запись запрошенной информации
  4. /resources_list - команда, выводящая список пингуемых ресурсов
  5. /remove_resource - команда, удаляющая ресурс


Инструкция для разворота приложения

  1. Установите Docker и Docker Compose на свой сервер/компьютер;
  2. Клонируйте репозиторий GitHub на свой сервер/компьютер, используя следующую команду:
git clone https://github.com/3dquattro/availabilitybot_mk2
  1. Перейдите в корневой каталог свежескачанного репозитория
  2. Произведите (при необходимости) настройку приложения путем изменения переменных в файле docker-compose.yml
  3. Произведите сборку образов docker командой:
docker-compose build
  1. Запустите контейнеры следующей командой:
docker-compose up -d
  1. В случае необходимости произведите отключение контейнеров следующей командой:
docker-compose down

About

Telegram (aiogram) бот-пинговалка с очередями (celery+redis) и PGSQL (хранилище журнала и информации о пользователях и ресурсах)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors