mirror of
https://github.com/serega404/VodokanalBot.git
synced 2026-05-30 12:10:01 +03:00
79 lines
2.7 KiB
Markdown
79 lines
2.7 KiB
Markdown
# VodokanalParser
|
||
|
||
[](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) для того что бы узнать подробности.
|