# Portability: UNIVERSAL
# Last validated: 2026-05-17
# Next review: 2027-05-17

ИМЯ ОБРАБОТЧИКА
------------

notify - Система уведомлений для BACH


ОПИСАНИЕ
------------

Отправляет уведомления по различным внешним каналам. Поддерживается
Discord, Signal, электронная почта, Telegram, Webhooks и Slack. Сообщения находятся в
База данных (connector_messages) регистрируется и может находиться в режиме ожидания до тех пор, пока
соответствующий канал готов.

Все конфигурации хранятся в таблице соединений bach.db.
Аутентификация осуществляется с помощью токенов или комбинаций адреса электронной почты и пароля.


ОПЕРАЦИИ
-----------

отправить <канал> <текст>
  Отправка уведомления через настроенный канал.
  Пример: bach notify send discord «Процесс завершен»

setup <channel> [конечная точка] [--token=X] [--email=X]
  Перенастройте или обновите канал.
  - каналы: Discord, Signal, электронная почта, Telegram, Webhook, Slack
  - конечная точка: URL-адрес API или адрес сервера (необязательно для Telegram)
  - --token=X: токен аутентификации (например, токен бота)
  - --email=X: адрес электронной почты для входа в систему SMTP.
  Пример: телеграмма настройки уведомления bach --token=123456:ABC-DEF

test <channel>
  Отправьте тестовое сообщение для проверки конфигурации.
  Пример: bach notify test slack

list
  Показать все настроенные каналы уведомлений со статусом.
  Показывает: имя канала, тип, конечную точку, активный/неактивный, количество отправлений, последнюю отправку.

статус
  Идентичен «списку» — статус всех каналов.

история [--limit N]
  Показать последние уведомления (по умолчанию: 20).
  Показывает: название канала, статус (отправлено/ожидает), временную метку, текст сообщения.
  Пример: история уведомлений bach --limit 50


ПРИМЕРЫ
---------

Настройка веб-перехватчика Discord:
  bach notify setup discord https://discord.com/api/webhooks/ABC/XYZ

Настройка бота Telegram:
  bach notify setup telegram --token=123456:ABC-DEF-GHI

Отправить электронное письмо через Gmail:
  bach notify setup email smtp.gmail.com --token=APP_PASSWORD --email=user@gmail.com

Добавить веб-перехватчик Slack:
  bach notify setup slack https://hooks.slack.com/services/T00/B00/XX

Тестовое уведомление:
  bach notify test discord

Отправить сообщение:
  bach notify send discord "Backup erfolgreich abgeschlossen"

История последних 10 уведомлений:
  bach notify history --limit 10


ФАЙЛЫ
-------

data/bach.db
  База данных с таблицами:
  - соединения: сохраненные конфигурации каналов (конечная точка, токен и т. д.).
  - Connector_messages: протоколировать все входящие/исходящие сообщения

user/secrets/secrets.json
  Необязательно: файл центральных секретов (чтение с приоритетом для Telegram).
  Формат: {"telegram": {"bot_token": "...", "chat_id": "..."}}


СМОТРИ ТАКЖЕ
----------

hub/base.py — класс BaseHandler
hub/notify.py — полная реализация обработчика
data/ — база данных и конфигурация Баха
docs/handlers.txt — общая документация обработчика.
