diff --git a/README.md b/README.md index a307858..c243f78 100644 --- a/README.md +++ b/README.md @@ -111,15 +111,17 @@ docker build -t mikrotik-monitor:latest . | `MIKROTIK_PASSWORD` | ✅ | — | Пароль | | `ADDRESS_LIST_NAME` | ✅ | — | Имя списка в `/ip firewall address-list` | -### Telegram +### Telegram (опционально) | Переменная | Обязательная | По умолчанию | Описание | |---|:---:|---|---| -| `TELEGRAM_BOT_TOKEN` | ✅ | — | Токен бота от @BotFather | -| `TELEGRAM_CHAT_ID` | ✅ | — | ID чата/группы/канала | +| `TELEGRAM_BOT_TOKEN` | | — | Токен бота от @BotFather | +| `TELEGRAM_CHAT_ID` | | — | ID чата/группы/канала | | `TELEGRAM_API_URL` | | `https://api.telegram.org` | URL API (замените на прокси если заблокирован) | -### MAX (VK Teams) +> Если `TELEGRAM_BOT_TOKEN` или `TELEGRAM_CHAT_ID` не заданы — уведомления в Telegram не отправляются. + +### MAX (VK Teams, опционально) | Переменная | Обязательная | По умолчанию | Описание | |---|:---:|---|---| @@ -129,6 +131,8 @@ docker build -t mikrotik-monitor:latest . > Если `MAX_BOT_TOKEN` или `MAX_CHAT_ID` не заданы — уведомления в MAX не отправляются. +> ⚠️ Хотя бы один канал уведомлений должен быть настроен. + ### Мониторинг | Переменная | Обязательная | По умолчанию | Описание | diff --git a/monitor.py b/monitor.py index 72fe970..b2f82d4 100644 --- a/monitor.py +++ b/monitor.py @@ -22,8 +22,8 @@ MIKROTIK_PORT = int(os.getenv("MIKROTIK_PORT", "8728")) MIKROTIK_USER = os.environ["MIKROTIK_USER"] MIKROTIK_PASSWORD = os.environ["MIKROTIK_PASSWORD"] -TELEGRAM_BOT_TOKEN = os.environ["TELEGRAM_BOT_TOKEN"] -TELEGRAM_CHAT_ID = os.environ["TELEGRAM_CHAT_ID"] +TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN", "") +TELEGRAM_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID", "") TELEGRAM_API_URL = os.getenv("TELEGRAM_API_URL", "https://api.telegram.org") # MAX (VK Teams) — опционально, если не заданы — уведомления не отправляются @@ -54,6 +54,8 @@ log = logging.getLogger(__name__) # Telegram # ────────────────────────────────────────────── async def send_telegram(message: str) -> None: + if not TELEGRAM_BOT_TOKEN or not TELEGRAM_CHAT_ID: + return url = f"{TELEGRAM_API_URL}/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = {"chat_id": TELEGRAM_CHAT_ID, "text": message, "parse_mode": "HTML"} async with httpx.AsyncClient(timeout=10) as client: