Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/005-bot/monitor

Сервис выполняет периодическое сканирование страницы с актуальными отключениями, выявляет изменения и отправляет их в Redis PubSub.
https://github.com/005-bot/monitor

beautifulsoup httpx monitoring mvp pipenv pubsub python redis web-scraping

Last synced: 4 days ago
JSON representation

Сервис выполняет периодическое сканирование страницы с актуальными отключениями, выявляет изменения и отправляет их в Redis PubSub.

Awesome Lists containing this project

README

        

# 005 Бот - Монитор

Сервис выполняет периодическое сканирование страницы с актуальными отключениями, выявляет изменения и отправляет их в Redis PubSub.

Проект находится на стадии MVP и может содержать обратно несовместимые изменения.

## Используемые технологии, библиотеки

- [Python](https://www.python.org/)
- [Docker](https://www.docker.com/)
- [Pipenv](https://github.com/pypa/pipenv)
- [Redis](https://redis.io/)
- [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/)
- [httpx](https://github.com/encode/httpx/)

## Настройки

Для настройки используются переменные окружения:

| Название | Описание | По умолчанию |
| ------------------- | ------------------------------------- | ----------------------------------- |
| `REDIS__URL` | URL Redis | `redis://localhost:6379` |
| `SCRAPER__URL` | URL страницы с отключениями | `http://93.92.65.26/aspx/Gorod.htm` |
| `SCRAPER__INTERVAL` | Период проверки обновлений в секундах | `60` |
| `STORAGE__TTL_DAYS` | Время хранения хэшей записей в днях | `5` |
| `STORAGE__PREFIX` | Префикс хранилища для ключей в Redis | `bot-005` |
| `PUBLISHER__PREFIX` | Префикс очереди PubSub в Redis | `bot-005` |

## Логика работы

1. Сервис с периодичностью в `SCRAPER__INTERVAL` секунд запрашивает страницу по адресу `SCRAPER__URL`.
2. Полученная страница разбирается на отдельные записи.
3. Для каждой записи считается хэш и сравнивается с сохраненными в хранилище значениями.
4. Записи, отсутствующие в хранилище считаются новыми и отправляются в очередь сообщений.
5. Новые значения хэшей записываются в хранилище.

## Лицензия

Проект распространяется под лицензией Apache 2.0.