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() threading.Thread(target=start_web_server, daemon=True).start()
startup_notified = False startup_notified = False
mikrotik_error_notified = False # флаг: уже уведомили об ошибке подключения
while True: while True:
pool = None pool = None
@@ -439,6 +440,14 @@ def main() -> None:
api = pool.get_api() api = pool.get_api()
log.info("Подключено к MikroTik") 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) ip_list = fetch_address_list(api)
if not startup_notified: if not startup_notified:
@@ -532,11 +541,13 @@ def main() -> None:
except Exception as exc: except Exception as exc:
log.error("Ошибка: %s", exc) log.error("Ошибка: %s", exc)
notify( if not mikrotik_error_notified:
f"⚠️ <b>Ошибка подключения к MikroTik</b>\n" mikrotik_error_notified = True
f"🔧 Роутер: <b>{router_identity}</b> (<code>{MIKROTIK_HOST}</code>)\n" notify(
f"<code>{exc}</code>" f"⚠️ <b>Ошибка подключения к MikroTik</b>\n"
) f"🔧 Роутер: <b>{router_identity}</b> (<code>{MIKROTIK_HOST}</code>)\n"
f"<code>{exc}</code>"
)
finally: finally:
if pool: if pool:
try: try: