1
0
mirror of https://github.com/serega404/VodokanalBot.git synced 2026-07-01 17:39:17 +03:00
Files
VodokanalBot/README.md
T

3.5 KiB
Raw Blame History

VodokanalParser

MIT License

Запуск TG интеграции в 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 up -d --build

Запуск с MeshCore + Home Assistant

Вариант для MeshCore отправляет новые сообщения в webhook Home Assistant, а Home Assistant пересылает их в канал MeshCore.

  1. Добавь в Home Assistant автоматизацию Webhook to MeshCore channel.
  2. Замени CHANGE_ME_RANDOM_WEBHOOK_ID в автоматизации на случайную строку.
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' \
    -e MESHCORE_MESSAGE_LIMIT_BYTES='133' \
    -e MESHCORE_CYR2LAT_MODE='soft' \
    -e MESHCORE_CHUNK_DELAY_MS='0' \
    ghcr.io/serega404/vodokanalbot-meshcore-ha:main

Перед отправкой в MeshCore текст транслитерируется и делится на части по MESHCORE_MESSAGE_LIMIT_BYTES байт. По умолчанию используется лимит 133 и мягкий режим MESHCORE_CYR2LAT_MODE=soft, где заменяются только похожие буквы. Для полной транслитерации укажи MESHCORE_CYR2LAT_MODE=full, для отключения транслитерации — MESHCORE_CYR2LAT_MODE=off. Задержку между частями можно задать через MESHCORE_CHUNK_DELAY_MS в миллисекундах, по умолчанию 0.

Запуск в Docker Compose

Укажи HOME_ASSISTANT_WEBHOOK_ID и HOME_ASSISTANT_WEBHOOK_CHANNEL в docker-compose.ha.yml, затем запусти:

docker compose up -d --build -f docker-compose.ha.yml

Интеграции

Общая логика парсинга, работы с data/db.json и поиска новых сообщений вынесена в parser.py.

Для новой интеграции достаточно создать свой адаптер отправки и передать его в publish_new_posts:

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",
)

Библиотеки

Лицензия

Распространяется под MIT License. Смотри файл LICENSE для того что бы узнать подробности.