05-sep: [feat] menu wizard en bot OpenCode (/menu), menu IDD cierra al elegir + updates en hilos, borrar tarea NAS (0%) desde panel
This commit is contained in:
@@ -243,6 +243,24 @@ def _enviar_nuevo(chat_id, texto, teclado=None):
|
||||
_log(f"send error: {e}")
|
||||
|
||||
|
||||
def _cerrar_menu(chat_id, message_id):
|
||||
"""Quita los botones del menu (lo deja cerrado como texto estatico)."""
|
||||
import requests
|
||||
try:
|
||||
requests.post(_api("editMessageReplyMarkup"),
|
||||
data={"chat_id": chat_id, "message_id": message_id},
|
||||
timeout=10)
|
||||
except Exception as e:
|
||||
_log(f"cerrar menu error: {e}")
|
||||
|
||||
|
||||
def _disp(chat_id, message_id, comando):
|
||||
"""Ejecuta un comando del bot y cierra el menu (opcion elegida)."""
|
||||
import pi_bot
|
||||
pi_bot.procesar(comando, chat_id)
|
||||
_cerrar_menu(chat_id, message_id)
|
||||
|
||||
|
||||
# ----------------------------------------------------------------- menu ----
|
||||
|
||||
def enviar_menu(chat_id):
|
||||
@@ -330,21 +348,23 @@ def procesar_callback(data, chat_id, message_id):
|
||||
}
|
||||
_enviar_nuevo(chat_id, preguntas.get(accion, "Escribe el dato:"),
|
||||
teclado_cancelar())
|
||||
_cerrar_menu(chat_id, message_id)
|
||||
return
|
||||
|
||||
if ruta == "pausa_min":
|
||||
nombre = _get_pausa_nombre(chat_id)
|
||||
if not nombre:
|
||||
_enviar_nuevo(chat_id, "Empieza de nuevo: /menu", teclado_cancelar())
|
||||
_cerrar_menu(chat_id, message_id)
|
||||
return
|
||||
if partes[1] == "otro":
|
||||
_guardar_pendiente(chat_id, "pausa_minutos")
|
||||
_enviar_nuevo(chat_id, "⏱️ ¿Cuántos minutos? (1-1440)", teclado_cancelar())
|
||||
_cerrar_menu(chat_id, message_id)
|
||||
return
|
||||
minutos = partes[1]
|
||||
import pi_bot
|
||||
_enviar_nuevo(chat_id, f"⏸️ Pausa {nombre} {minutos} minutos…", None)
|
||||
pi_bot.procesar(f"parental pausa {nombre} {minutos}", chat_id)
|
||||
_disp(chat_id, message_id,
|
||||
f"parental pausa {nombre} {minutos}")
|
||||
return
|
||||
|
||||
if ruta == "acc":
|
||||
@@ -383,8 +403,7 @@ def _ejecutar_parental(chat_id, message_id, accion, nombre):
|
||||
teclado_minutos_pausa(nombre))
|
||||
return
|
||||
comando = f"parental {'desactivar' if accion == 'desactivar' else 'activar'} {nombre}"
|
||||
import pi_bot
|
||||
pi_bot.procesar(comando, chat_id)
|
||||
_disp(chat_id, message_id, comando)
|
||||
|
||||
|
||||
def _ejecutar_accion(chat_id, message_id, partes):
|
||||
@@ -408,10 +427,10 @@ def _ejecutar_accion(chat_id, message_id, partes):
|
||||
"parental_listar": "parental listar",
|
||||
}
|
||||
if accion in directos:
|
||||
pi_bot.procesar(directos[accion], chat_id)
|
||||
_disp(chat_id, message_id, directos[accion])
|
||||
return
|
||||
if accion == "termo":
|
||||
pi_bot.procesar(f"termo {sub}", chat_id)
|
||||
_disp(chat_id, message_id, f"termo {sub}")
|
||||
return
|
||||
if accion == "router":
|
||||
mapeo = {
|
||||
@@ -423,12 +442,12 @@ def _ejecutar_accion(chat_id, message_id, partes):
|
||||
"reiniciar": "router reiniciar",
|
||||
"reservar": "router reservar",
|
||||
}
|
||||
pi_bot.procesar(mapeo.get(sub, "router ayuda"), chat_id)
|
||||
_disp(chat_id, message_id, mapeo.get(sub, "router ayuda"))
|
||||
return
|
||||
if accion in ("torrents", "bajar"):
|
||||
numero = int(sub) if sub.isdigit() else 0
|
||||
if numero:
|
||||
pi_bot.procesar(f"{accion} {numero}", chat_id)
|
||||
_disp(chat_id, message_id, f"{accion} {numero}")
|
||||
return
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user