Backup automatico script del 2026-02-01 07:00

This commit is contained in:
2026-02-01 07:00:02 +01:00
parent f0c5672607
commit d79431ed28
4 changed files with 32 additions and 9 deletions
+18 -6
View File
@@ -11,7 +11,7 @@ from typing import List, Optional
# --- CONFIGURAZIONE ---
BOT_TOKEN="8155587974:AAF9OekvBpixtk8ZH6KoIc0L8edbhdXt7A4"
TELEGRAM_CHAT_IDS = ["64463169", "24827341", "132455422", "5405962012"]
TELEGRAM_CHAT_IDS = ["64463169"]
# BERSAGLIO (Cloudflare è solitamente il più stabile per i ping)
TARGET_HOST = "1.1.1.1"
@@ -86,8 +86,20 @@ def measure_quality(chat_ids: Optional[List[str]] = None):
# Parsing Packet Loss
# Cerca pattern: "X% packet loss"
loss_match = re.search(r'(\d+)% packet loss', output)
loss = int(loss_match.group(1)) if loss_match else 100
loss_match = re.search(r'([0-9]+(?:[\\.,][0-9]+)?)% packet loss', output)
if loss_match:
loss_raw = loss_match.group(1).replace(",", ".")
try:
loss = float(loss_raw)
except Exception:
loss = 100.0
else:
loss = 100.0
# Clamp to avoid parsing artifacts (e.g., "0.96078%" -> 0.96078, not 96078).
if loss < 0:
loss = 0.0
if loss > 100:
loss = 100.0
# Parsing Jitter (mdev)
# Output tipico: rtt min/avg/max/mdev = 10.1/12.5/40.2/5.1 ms
@@ -101,7 +113,7 @@ def measure_quality(chat_ids: Optional[List[str]] = None):
else:
avg_ping = 0.0
result_line = f"Risultati: Loss={loss}% | Jitter={jitter}ms | AvgPing={avg_ping}ms"
result_line = f"Risultati: Loss={loss:.2f}% | Jitter={jitter}ms | AvgPing={avg_ping}ms"
print(result_line)
log_line(f"INFO {result_line}")
@@ -116,7 +128,7 @@ def measure_quality(chat_ids: Optional[List[str]] = None):
# NUOVO ALLARME
msg = f"📉 **DEGRADO QUALITÀ LINEA**\n\n"
if loss >= LIMIT_LOSS:
msg += f"🔴 **Packet Loss:** `{loss}%` (Soglia {LIMIT_LOSS}%)\n"
msg += f"🔴 **Packet Loss:** `{loss:.2f}%` (Soglia {LIMIT_LOSS}%)\n"
if jitter >= LIMIT_JITTER:
msg += f"⚠️ **Jitter (Instabilità):** `{jitter}ms` (Soglia {LIMIT_JITTER}ms)\n"
@@ -133,7 +145,7 @@ def measure_quality(chat_ids: Optional[List[str]] = None):
# RECOVERY
msg = f"✅ **QUALITÀ LINEA RIPRISTINATA**\n\n"
msg += f"I parametri sono rientrati nella norma.\n"
msg += f"Ping: `{avg_ping}ms` | Jitter: `{jitter}ms` | Loss: `{loss}%`"
msg += f"Ping: `{avg_ping}ms` | Jitter: `{jitter}ms` | Loss: `{loss:.2f}%`"
send_telegram(msg, chat_ids=chat_ids)
save_state(False)
print("Recovery inviata.")