feat: Telegram теперь опциональный, как MAX
This commit is contained in:
@@ -111,15 +111,17 @@ docker build -t mikrotik-monitor:latest .
|
|||||||
| `MIKROTIK_PASSWORD` | ✅ | — | Пароль |
|
| `MIKROTIK_PASSWORD` | ✅ | — | Пароль |
|
||||||
| `ADDRESS_LIST_NAME` | ✅ | — | Имя списка в `/ip firewall address-list` |
|
| `ADDRESS_LIST_NAME` | ✅ | — | Имя списка в `/ip firewall address-list` |
|
||||||
|
|
||||||
### Telegram
|
### Telegram (опционально)
|
||||||
|
|
||||||
| Переменная | Обязательная | По умолчанию | Описание |
|
| Переменная | Обязательная | По умолчанию | Описание |
|
||||||
|---|:---:|---|---|
|
|---|:---:|---|---|
|
||||||
| `TELEGRAM_BOT_TOKEN` | ✅ | — | Токен бота от @BotFather |
|
| `TELEGRAM_BOT_TOKEN` | | — | Токен бота от @BotFather |
|
||||||
| `TELEGRAM_CHAT_ID` | ✅ | — | ID чата/группы/канала |
|
| `TELEGRAM_CHAT_ID` | | — | ID чата/группы/канала |
|
||||||
| `TELEGRAM_API_URL` | | `https://api.telegram.org` | URL API (замените на прокси если заблокирован) |
|
| `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 не отправляются.
|
> Если `MAX_BOT_TOKEN` или `MAX_CHAT_ID` не заданы — уведомления в MAX не отправляются.
|
||||||
|
|
||||||
|
> ⚠️ Хотя бы один канал уведомлений должен быть настроен.
|
||||||
|
|
||||||
### Мониторинг
|
### Мониторинг
|
||||||
|
|
||||||
| Переменная | Обязательная | По умолчанию | Описание |
|
| Переменная | Обязательная | По умолчанию | Описание |
|
||||||
|
|||||||
+4
-2
@@ -22,8 +22,8 @@ MIKROTIK_PORT = int(os.getenv("MIKROTIK_PORT", "8728"))
|
|||||||
MIKROTIK_USER = os.environ["MIKROTIK_USER"]
|
MIKROTIK_USER = os.environ["MIKROTIK_USER"]
|
||||||
MIKROTIK_PASSWORD = os.environ["MIKROTIK_PASSWORD"]
|
MIKROTIK_PASSWORD = os.environ["MIKROTIK_PASSWORD"]
|
||||||
|
|
||||||
TELEGRAM_BOT_TOKEN = os.environ["TELEGRAM_BOT_TOKEN"]
|
TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN", "")
|
||||||
TELEGRAM_CHAT_ID = os.environ["TELEGRAM_CHAT_ID"]
|
TELEGRAM_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID", "")
|
||||||
TELEGRAM_API_URL = os.getenv("TELEGRAM_API_URL", "https://api.telegram.org")
|
TELEGRAM_API_URL = os.getenv("TELEGRAM_API_URL", "https://api.telegram.org")
|
||||||
|
|
||||||
# MAX (VK Teams) — опционально, если не заданы — уведомления не отправляются
|
# MAX (VK Teams) — опционально, если не заданы — уведомления не отправляются
|
||||||
@@ -54,6 +54,8 @@ log = logging.getLogger(__name__)
|
|||||||
# Telegram
|
# Telegram
|
||||||
# ──────────────────────────────────────────────
|
# ──────────────────────────────────────────────
|
||||||
async def send_telegram(message: str) -> None:
|
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"
|
url = f"{TELEGRAM_API_URL}/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
|
||||||
payload = {"chat_id": TELEGRAM_CHAT_ID, "text": message, "parse_mode": "HTML"}
|
payload = {"chat_id": TELEGRAM_CHAT_ID, "text": message, "parse_mode": "HTML"}
|
||||||
async with httpx.AsyncClient(timeout=10) as client:
|
async with httpx.AsyncClient(timeout=10) as client:
|
||||||
|
|||||||
Reference in New Issue
Block a user