Микроприложение, реализующее функционал телеграм-бота, осуществляющего пинг-запросы к критическим ресурсам и сигнализирующего в случае их недоступности. Требовалось реализовать телеграм-бота, непрерывно фукнционирующего, с возможностью добавления, удаления ресурсов, запуска/отключения рассылки и записью/записи информации о недоступности какого-либо ресурса в журнал.
- Соответствие PEP8
- Читаемость
- Документированность
- Отсутствие критических замечаний со стороны pylint
- Асинхронность
- Надежность
- aiogram - основа, для взаимодействия с Telegram;
- ping3 - библиотека-пинговалка;
- Celery - для запуска и выполнения асинхронных задач;
- Redis - хранение задач и сообщений для отправки в рамках обмена между Celery и aiogram;
- SQLModel - ORM-библиотека для упрощения взаимодействия с БД;
- PostgreSQL - база данных, где хранится информация о пользователях, ресурсах и журнал записей;
- Docker/docker-compose - деплой приложения.
- config/conf.py - конфигурация бота (в случае разворачивания без docker/docker-compose параметры взаимодействия с БД необходимо править там)
- models.py - ORM-модели (SQLModel)
- main.py - модуль приложения, где содержится основная логика, по совместительству, входная точка.
- /start - записывает чат или начинает рассылку, если чат уже записан
- /stop - останавливает рассылку
- /add_resource - команда, осуществляющая в три шага запрос информации о ресурсе для пингования и последующую запись запрошенной информации
- /resources_list - команда, выводящая список пингуемых ресурсов
- /remove_resource - команда, удаляющая ресурс
- Установите Docker и Docker Compose на свой сервер/компьютер;
- Клонируйте репозиторий GitHub на свой сервер/компьютер, используя следующую команду:
git clone https://github.com/3dquattro/availabilitybot_mk2
- Перейдите в корневой каталог свежескачанного репозитория
- Произведите (при необходимости) настройку приложения путем изменения переменных в файле docker-compose.yml
- Произведите сборку образов docker командой:
docker-compose build
- Запустите контейнеры следующей командой:
docker-compose up -d
- В случае необходимости произведите отключение контейнеров следующей командой:
docker-compose down