From 96a1f9488389f8592c0f0e336247f98a0b714031 Mon Sep 17 00:00:00 2001 From: juanjo Date: Thu, 3 Sep 2026 23:46:55 +0200 Subject: [PATCH] 03-sep: [fix] reparar comando descargar del videoclub --- vigilancia/pi_bot.py | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/vigilancia/pi_bot.py b/vigilancia/pi_bot.py index 5b22e87..b3f921a 100644 --- a/vigilancia/pi_bot.py +++ b/vigilancia/pi_bot.py @@ -81,6 +81,7 @@ def estado(): def enviar(texto, chat_id): # Trocea mensajes largos (Telegram limita a ~4096 chars) para no fallar en silencio + ultimo_id = None for i in range(0, len(texto), 4000): bloque = texto[i:i + 4000] try: @@ -91,10 +92,12 @@ def enviar(texto, chat_id): ) d = r.json() if d.get("ok"): - return d["result"].get("message_id") + ultimo_id = d["result"].get("message_id") + else: + log(f"Telegram sendMessage error: {d.get('description', d)}") except Exception as e: - print("Error enviando:", e) - return None + log(f"Telegram sendMessage exception: {e}") + return ultimo_id def borrar(chat_id, message_id): @@ -132,6 +135,9 @@ def mandar_youtube(url): def procesar(texto, chat_id): t = texto.lower().strip() log(f"RECIBIDO chat={chat_id} texto={texto!r}") + partes = t.split(None, 1) + comando = partes[0].split("@", 1)[0].lstrip("/") if partes else "" + argumento = partes[1].strip() if len(partes) > 1 else "" # Flujo interactivo por genero (espera numeros en pasos) if flujo_genero.get(chat_id) and t.isdigit(): paso = flujo_genero[chat_id] @@ -207,19 +213,21 @@ def procesar(texto, chat_id): else: ok = mandar_youtube(url) enviar("šŸŽ¬ YouTube lanzado en la TV āœ…" if ok else "āŒ No se pudo lanzar YouTube", chat_id) - elif t in ("descargar", "/descargar"): - import nas_dl - lineas, _act = nas_dl.listar_descargas(hablar_solo_activas=True) - enviar("\n".join(lineas), chat_id) - elif t.startswith("descargar ") or t.startswith("/descargar "): - uri = texto.split(" ", 1)[1].strip() - if not uri: - enviar("Uso: descargar <enlace|magnet|uri> (anade a Download Station del NAS)", chat_id) - else: + elif comando == "descargar": + try: import nas_dl - ok = nas_dl.add_torrent(uri) - enviar("šŸ“„ AƱadido a Download Station del NAS āœ…" if ok - else "āŒ No se pudo aƱadir al NAS", chat_id) + if argumento: + ok = nas_dl.add_torrent(argumento) + enviar("šŸ“„ AƱadido a Download Station del NAS āœ…" if ok + else "āŒ No se pudo aƱadir al NAS. Revisa bot.log.", chat_id) + else: + # Incluye tambiĆ©n pendientes, pausadas y terminadas para que + # el usuario pueda ver el estado real de cada torrent. + lineas, _act = nas_dl.listar_descargas(hablar_solo_activas=False) + enviar("\n".join(lineas), chat_id) + except Exception as e: + log(f"descargar error: {e}") + enviar(f"āŒ Error en Download Station: {e}", chat_id) elif t in ("pelis", "/pelis"): procesar_pelis(chat_id) elif t in ("series", "/series"):