fix: уведомление об ошибке MikroTik только один раз + восстановление

This commit is contained in:
2026-05-19 11:23:08 +07:00
parent eb8642ebaa
commit 143e67a859
+16 -5
View File
@@ -425,6 +425,7 @@ def main() -> None:
threading.Thread(target=start_web_server, daemon=True).start()
startup_notified = False
mikrotik_error_notified = False # флаг: уже уведомили об ошибке подключения
while True:
pool = None
@@ -439,6 +440,14 @@ def main() -> None:
api = pool.get_api()
log.info("Подключено к MikroTik")
# Если до этого была ошибка — уведомить о восстановлении
if mikrotik_error_notified:
mikrotik_error_notified = False
notify(
f"✅ <b>Подключение к MikroTik восстановлено</b>\n"
f"🔧 Роутер: <b>{router_identity}</b> (<code>{MIKROTIK_HOST}</code>)"
)
ip_list = fetch_address_list(api)
if not startup_notified:
@@ -532,11 +541,13 @@ def main() -> None:
except Exception as exc:
log.error("Ошибка: %s", exc)
notify(
f"⚠️ <b>Ошибка подключения к MikroTik</b>\n"
f"🔧 Роутер: <b>{router_identity}</b> (<code>{MIKROTIK_HOST}</code>)\n"
f"<code>{exc}</code>"
)
if not mikrotik_error_notified:
mikrotik_error_notified = True
notify(
f"⚠️ <b>Ошибка подключения к MikroTik</b>\n"
f"🔧 Роутер: <b>{router_identity}</b> (<code>{MIKROTIK_HOST}</code>)\n"
f"<code>{exc}</code>"
)
finally:
if pool:
try: