05-sep: [vigilancia] comandos /aiMesh /qos /limite /seguridad para el ASUS desde Telegram
This commit is contained in:
@@ -497,10 +497,115 @@ def procesar(texto, chat_id):
|
||||
enviar(
|
||||
"Uso: <code>/parental pausa Inés 60</code>, "
|
||||
"<code>/parental desactivar Carolina</code> o "
|
||||
"<code>/parental activar Inés</code>.", chat_id)
|
||||
"<code>/parental activar Inés</code>.", chat_id)
|
||||
except Exception as e:
|
||||
log(f"parental error: {e}")
|
||||
enviar(f"❌ Error en control parental: {e}", chat_id)
|
||||
elif comando == "aiMesh":
|
||||
partes_mesh = argumento.split()
|
||||
accion_mesh = partes_mesh[0].lower() if partes_mesh else "estado"
|
||||
try:
|
||||
from asus_api_control import (
|
||||
aimesh_estado,
|
||||
aimesh_reconstruir,
|
||||
aimesh_reiniciar_nodo,
|
||||
)
|
||||
if accion_mesh in ("estado", "nodos", "listar"):
|
||||
enviar("🌐 <b>AIMESH ASUS</b>\n" + aimesh_estado(), chat_id)
|
||||
elif accion_mesh == "reiniciar" and len(partes_mesh) >= 2:
|
||||
if partes_mesh[-1] != "confirmar":
|
||||
enviar("Para reiniciar un nodo responde: <code>/aiMesh reiniciar <nodo> confirmar</code>", chat_id)
|
||||
else:
|
||||
nodo = " ".join(partes_mesh[1:-1])
|
||||
enviar(f"🔄 Reiniciando el nodo <b>{nodo}</b>...", chat_id)
|
||||
enviar(aimesh_reiniciar_nodo(nodo), chat_id)
|
||||
elif accion_mesh == "reconstruir":
|
||||
if len(partes_mesh) < 2 or partes_mesh[-1] != "confirmar":
|
||||
enviar("Para reconstruir la malla responde: <code>/aiMesh reconstruir confirmar</code>", chat_id)
|
||||
else:
|
||||
enviar("⚠️ Reconstruyendo la malla AiMesh...", chat_id)
|
||||
enviar(aimesh_reconstruir(), chat_id)
|
||||
else:
|
||||
enviar(
|
||||
"Uso:\n<code>/aiMesh estado</code> — nodos y señal\n"
|
||||
"<code>/aiMesh reiniciar <nodo> confirmar</code>\n"
|
||||
"<code>/aiMesh reconstruir confirmar</code>", chat_id)
|
||||
except Exception as e:
|
||||
log(f"aiMesh error: {e}")
|
||||
enviar(f"❌ Error en AiMesh: {e}", chat_id)
|
||||
elif comando == "qos":
|
||||
partes_qos = argumento.lower().split()
|
||||
accion_qos = partes_qos[0] if partes_qos else "estado"
|
||||
try:
|
||||
from router_control import qos_apagar, qos_estado, qos_set
|
||||
if accion_qos == "estado":
|
||||
enviar("⚙️ <b>QOS ASUS</b>\n" + qos_estado(), chat_id)
|
||||
elif accion_qos in ("adaptive", "tradicional") and len(partes_qos) >= 2 and partes_qos[-1] == "confirmar":
|
||||
enviar("⏳ Aplicando QoS...", chat_id)
|
||||
enviar(qos_set(accion_qos), chat_id)
|
||||
elif accion_qos == "apagar" and len(partes_qos) >= 2 and partes_qos[-1] == "confirmar":
|
||||
enviar("⏳ Apagando QoS...", chat_id)
|
||||
enviar(qos_apagar(), chat_id)
|
||||
else:
|
||||
enviar(
|
||||
"Uso:\n<code>/qos estado</code>\n"
|
||||
"<code>/qos adaptive confirmar</code> — auto gaming/streaming\n"
|
||||
"<code>/qos tradicional confirmar</code> — prioridades manuales\n"
|
||||
"<code>/qos apagar confirmar</code>", chat_id)
|
||||
except Exception as e:
|
||||
log(f"qos error: {e}")
|
||||
enviar(f"❌ Error en QoS: {e}", chat_id)
|
||||
elif comando == "limite":
|
||||
partes_lim = argumento.split()
|
||||
accion_lim = partes_lim[0].lower() if partes_lim else "listar"
|
||||
try:
|
||||
from router_control import limite_listar, limite_poner, limite_quitar
|
||||
if accion_lim == "listar":
|
||||
enviar("🚦 <b>LÍMITES DE VELOCIDAD</b>\n" + limite_listar(), chat_id)
|
||||
elif accion_lim in ("poner", "set") and len(partes_lim) >= 4:
|
||||
try:
|
||||
dl = float(partes_lim[-2])
|
||||
ul = float(partes_lim[-1])
|
||||
except ValueError:
|
||||
enviar("Las velocidades deben ser números en Mbps.", chat_id)
|
||||
else:
|
||||
dispositivo = " ".join(partes_lim[1:-2]) or partes_lim[1]
|
||||
enviar(limite_poner(dispositivo, dl, ul), chat_id)
|
||||
elif accion_lim in ("quitar", "del", "remove") and len(partes_lim) >= 2:
|
||||
dispositivo = " ".join(partes_lim[1:])
|
||||
enviar(limite_quitar(dispositivo), chat_id)
|
||||
else:
|
||||
enviar(
|
||||
"Uso:\n<code>/limite listar</code>\n"
|
||||
"<code>/limite poner <dispositivo> <bajada> <subida></code> (Mbps)\n"
|
||||
" ✏️ Ej: <code>/limite poner NAS 50 20</code>\n"
|
||||
"<code>/limite quitar <dispositivo></code>", chat_id)
|
||||
except Exception as e:
|
||||
log(f"limite error: {e}")
|
||||
enviar(f"❌ Error en límites: {e}", chat_id)
|
||||
elif comando == "seguridad":
|
||||
partes_seg = argumento.lower().split()
|
||||
accion_seg = partes_seg[0] if partes_seg else "estado"
|
||||
try:
|
||||
from router_control import (
|
||||
seguridad_estado,
|
||||
seguridad_keyword,
|
||||
)
|
||||
if accion_seg == "estado":
|
||||
enviar("🛡️ <b>SEGURIDAD ASUS</b>\n" + seguridad_estado(), chat_id)
|
||||
elif accion_seg in ("bloquear", "desbloquear") and len(partes_seg) >= 2:
|
||||
palabra = " ".join(partes_seg[1:])
|
||||
activar = accion_seg == "bloquear"
|
||||
enviar(seguridad_keyword(palabra, activar), chat_id)
|
||||
else:
|
||||
enviar(
|
||||
"Uso (filtro de contenidos AiProtection):\n"
|
||||
"<code>/seguridad estado</code>\n"
|
||||
"<code>/seguridad bloquear <palabra></code> — p. ej. tiktok\n"
|
||||
"<code>/seguridad desbloquear <palabra></code>", chat_id)
|
||||
except Exception as e:
|
||||
log(f"seguridad error: {e}")
|
||||
enviar(f"❌ Error en seguridad: {e}", chat_id)
|
||||
elif t in ("pelis", "/pelis"):
|
||||
procesar_pelis(chat_id)
|
||||
elif t in ("series", "/series"):
|
||||
@@ -579,15 +684,15 @@ def procesar(texto, chat_id):
|
||||
" ✏️ Ej: <code>/reboot</code> → confirmar con <code>/confirmar-reboot</code>\n"
|
||||
"<b>24.</b> <code>ayuda</code> — este índice\n"
|
||||
" ✏️ Ej: <code>/ayuda</code>\n\n"
|
||||
"━━━ 🆕 ROUTER ASUS — PRÓXIMAMENTE ━━━\n"
|
||||
"<b>25.</b> <code>qos</code> — prioridad de ancho de banda por tipo de tráfico\n"
|
||||
" ✏️ Ej: <code>/qos modo adaptive</code> — gaming/streaming con prioridad\n"
|
||||
"<b>26.</b> <code>aiMesh</code> — red en malla con tus 2 módulos ASUS\n"
|
||||
" ✏️ Ej: <code>/aiMesh estado</code> — nodos, señal y roaming unificado\n"
|
||||
"<b>27.</b> <code>seguridad</code> — AiProtection: bloqueo de webs por categoría\n"
|
||||
" ✏️ Ej: <code>/seguridad bloquear Inés redes sociales</code>\n"
|
||||
"<b>28.</b> <code>limite</code> — límite de velocidad por dispositivo\n"
|
||||
" ✏️ Ej: <code>/limite poner NAS 50 20</code> — 50/20 Mbps",
|
||||
"━━━ 🌐 ROUTER ASUS — MESH / QoS / SEGURIDAD ━━━\n"
|
||||
"<b>25.</b> <code>qos estado</code> — ancho de banda con prioridades\n"
|
||||
" ✏️ Ej: <code>/qos adaptive confirmar</code> — auto gaming/streaming\n"
|
||||
"<b>26.</b> <code>aiMesh estado</code> — nodos, señal y roaming unificado\n"
|
||||
" ✏️ Ej: <code>/aiMesh reiniciar nodo confirmar</code>\n"
|
||||
"<b>27.</b> <code>seguridad estado</code> — AiProtection: filtro de webs\n"
|
||||
" ✏️ Ej: <code>/seguridad bloquear tiktok</code>\n"
|
||||
"<b>28.</b> <code>limite listar</code> — límite de velocidad por dispositivo\n"
|
||||
" ✏️ Ej: <code>/limite poner NAS 50 20</code> — 50/20 Mbps",
|
||||
chat_id)
|
||||
elif t in ("servicios", "/servicios"):
|
||||
estado_svc = sh("systemctl is-active pi-bot tv-api autossh-tunel")
|
||||
|
||||
Reference in New Issue
Block a user