1
0
mirror of https://github.com/serega404/VodokanalBot.git synced 2026-05-30 12:10:01 +03:00
Files
VodokanalBot/README.md
T

79 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# VodokanalParser
[![MIT License](https://img.shields.io/github/license/serega404/VodokanalBot)](https://github.com/serega404/VodokanalBot)
## Запуск TG интеграции в Docker
``` Docker
docker volume create vodokanal_bot_data
docker run -d --name VodokanalBot \
--restart=always \
-v vodokanal_bot_data:/app/data \
-e TZ='Europe/Moscow' \
-e TELEGRAM_TOKEN='TOKEN' \
-e TELEGRAM_CHANNEL='CHAT_ID' \
ghcr.io/serega404/vodokanalbot:main
```
### Запуск в Docker Compose
Укажи `TELEGRAM_TOKEN` и `TELEGRAM_CHANNEL` в [`docker-compose.yml`](./docker-compose.yml), затем запусти:
``` Docker
docker compose up -d --build
```
## Запуск с MeshCore + Home Assistant
Вариант для MeshCore отправляет новые сообщения в webhook Home Assistant, а Home Assistant пересылает их в канал MeshCore.
1. Добавь в Home Assistant автоматизацию [`Webhook to MeshCore channel`](https://github.com/serega404/HA-MeshCore#webhook-to-meshcore-channel).
2. Замени `CHANGE_ME_RANDOM_WEBHOOK_ID` в автоматизации на случайную строку.
``` Docker
docker volume create vodokanal_bot_data
docker run -d --name VodokanalBot \
--restart=always \
-v vodokanal_bot_data:/app/data \
-e TZ='Europe/Moscow' \
-e HOME_ASSISTANT_WEBHOOK_ID='CHANGE_ME_RANDOM_WEBHOOK_ID' \
-e HOME_ASSISTANT_URL='http://homeassistant.local:8123' \
-e HOME_ASSISTANT_WEBHOOK_CHANNEL='0' \
ghcr.io/serega404/vodokanalbot-meshcore-ha:main
```
### Запуск в Docker Compose
Укажи `HOME_ASSISTANT_WEBHOOK_ID` и `HOME_ASSISTANT_WEBHOOK_CHANNEL` в [`docker-compose.ha.yml`](./docker-compose.ha.yml), затем запусти:
``` Docker
docker compose up -d --build -f docker-compose.ha.yml
```
## Интеграции
Общая логика парсинга, работы с `data/db.json` и поиска новых сообщений вынесена в [`parser.py`](./parser.py).
Для новой интеграции достаточно создать свой адаптер отправки и передать его в `publish_new_posts`:
``` Python
from parser import create_session, publish_new_posts
session = create_session()
publish_new_posts(
send_message=lambda message: print(message),
session=session,
url="http://www.tgnvoda.ru/avarii.php",
)
```
## Библиотеки
* [Requests](https://requests.readthedocs.io/en/latest/)
* [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/)
## Лицензия
Распространяется под MIT License. Смотри файл [`LICENSE`](./LICENSE) для того что бы узнать подробности.