05-sep: [bugfix] aiMesh no respondia (case en comando) + /seguridad estado real + nombres de alias en /limite
This commit is contained in:
@@ -501,7 +501,7 @@ def procesar(texto, chat_id):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
log(f"parental error: {e}")
|
log(f"parental error: {e}")
|
||||||
enviar(f"❌ Error en control parental: {e}", chat_id)
|
enviar(f"❌ Error en control parental: {e}", chat_id)
|
||||||
elif comando == "aiMesh":
|
elif comando in ("aimesh", "aiMesh", "mesh"):
|
||||||
partes_mesh = argumento.split()
|
partes_mesh = argumento.split()
|
||||||
accion_mesh = partes_mesh[0].lower() if partes_mesh else "estado"
|
accion_mesh = partes_mesh[0].lower() if partes_mesh else "estado"
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -163,18 +163,19 @@ def _set_nvram(entradas, servicio=None):
|
|||||||
|
|
||||||
|
|
||||||
def _nombre_por_mac(mac):
|
def _nombre_por_mac(mac):
|
||||||
_devices, _by_mac = _inventario()
|
mac = mac.upper()
|
||||||
for ip, m, nombre in _devices:
|
|
||||||
if m == mac.upper():
|
|
||||||
return nombre
|
|
||||||
try:
|
try:
|
||||||
from asus_api_control import DEVICE_ALIASES
|
from asus_api_control import DEVICE_ALIASES
|
||||||
for _alias, info in DEVICE_ALIASES.items():
|
for _alias, info in DEVICE_ALIASES.items():
|
||||||
if info["mac"].upper() == mac.upper():
|
if info["mac"].upper() == mac:
|
||||||
return info["name"]
|
return info["name"]
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
return f"unknown-{mac}"
|
_devices, _by_mac = _inventario()
|
||||||
|
for ip, m, nombre in _devices:
|
||||||
|
if m == mac and nombre != "pendiente-identificar":
|
||||||
|
return nombre
|
||||||
|
return "pendiente-identificar"
|
||||||
|
|
||||||
|
|
||||||
def _resolver_mac(dispositivo):
|
def _resolver_mac(dispositivo):
|
||||||
@@ -334,20 +335,50 @@ def limite_quitar(dispositivo):
|
|||||||
|
|
||||||
|
|
||||||
def seguridad_estado():
|
def seguridad_estado():
|
||||||
claves = (
|
import json as _json
|
||||||
"bwdpi_enable",
|
|
||||||
"yadns_enable_x",
|
out = _run(
|
||||||
"yadns_mode",
|
"printf '%s\\n' "
|
||||||
|
"'dnsfilter='$(nvram get dnsfilter_enable_x) "
|
||||||
|
"'keywords='$(nvram get keyword_rulelist)"
|
||||||
)
|
)
|
||||||
lineas = []
|
lineas = []
|
||||||
for clave in claves:
|
parental = None
|
||||||
lineas.append(f"{clave}={_run(f'nvram get {clave}')}")
|
try:
|
||||||
keywords = _run("nvram get keyword_rulelist") or ""
|
from asus_api_control import parental_status
|
||||||
palabras = [p for p in str(keywords).split("<") if p.strip()]
|
parental = _json.loads(parental_status())
|
||||||
|
except Exception:
|
||||||
|
parental = None
|
||||||
|
if parental is not None:
|
||||||
|
estado_p = "activo" if parental.get("state") else "inactivo"
|
||||||
|
nreglas = len(parental.get("rules") or {})
|
||||||
lineas.append(
|
lineas.append(
|
||||||
"palabras filtradas: "
|
f"Control parental: {estado_p} · "
|
||||||
|
f"{nreglas} dispositivos con regla"
|
||||||
|
)
|
||||||
|
if parental.get("block_all"):
|
||||||
|
lineas.append("Bloqueo total de Internet: ACTIVADO")
|
||||||
|
else:
|
||||||
|
lineas.append("Control parental: no consultable")
|
||||||
|
for campo in out.splitlines():
|
||||||
|
clave, _, valor = campo.partition("=")
|
||||||
|
if clave == "dnsfilter":
|
||||||
|
if valor == "1":
|
||||||
|
lineas.append("Filtro DNS: activado")
|
||||||
|
elif valor == "0":
|
||||||
|
lineas.append("Filtro DNS: desactivado")
|
||||||
|
else:
|
||||||
|
lineas.append(f"Filtro DNS: estado {valor!r}")
|
||||||
|
elif clave == "keywords":
|
||||||
|
palabras = [p for p in str(valor).split("<") if p.strip()]
|
||||||
|
lineas.append(
|
||||||
|
"Palabras filtradas: "
|
||||||
+ (", ".join(palabras) if palabras else "(ninguna)")
|
+ (", ".join(palabras) if palabras else "(ninguna)")
|
||||||
)
|
)
|
||||||
|
lineas.append(
|
||||||
|
"AiProtection Trend Micro: no activado "
|
||||||
|
"(requiere activacion desde la web del router)"
|
||||||
|
)
|
||||||
return f"<pre>{html.escape(chr(10).join(lineas))}</pre>"
|
return f"<pre>{html.escape(chr(10).join(lineas))}</pre>"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user