Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/005-bot/monitor
- Owner: 005-bot
- License: apache-2.0
- Created: 2024-10-19T01:38:54.000Z (18 days ago)
- Default Branch: master
- Last Pushed: 2024-10-24T07:18:30.000Z (13 days ago)
- Last Synced: 2024-10-25T03:33:00.444Z (12 days ago)
- Topics: beautifulsoup, httpx, monitoring, mvp, pipenv, pubsub, python, redis, web-scraping
- Language: Python
- Homepage:
- Size: 39.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.