03-sep: [comando] /descargar ver progreso de descargas + listar_descargas en nas_dl

This commit is contained in:
juanjo
2026-09-03 23:38:23 +02:00
parent 9e067f4e4d
commit 07f4f89a22
2 changed files with 109 additions and 36 deletions

View File

@@ -80,17 +80,20 @@ def estado():
def enviar(texto, chat_id):
try:
r = requests.post(
f"https://api.telegram.org/bot{TOKEN}/sendMessage",
data={"chat_id": chat_id, "text": texto, "parse_mode": "HTML"},
timeout=10,
)
d = r.json()
if d.get("ok"):
return d["result"].get("message_id")
except Exception as e:
print("Error enviando:", e)
# Trocea mensajes largos (Telegram limita a ~4096 chars) para no fallar en silencio
for i in range(0, len(texto), 4000):
bloque = texto[i:i + 4000]
try:
r = requests.post(
f"https://api.telegram.org/bot{TOKEN}/sendMessage",
data={"chat_id": chat_id, "text": bloque, "parse_mode": "HTML"},
timeout=10,
)
d = r.json()
if d.get("ok"):
return d["result"].get("message_id")
except Exception as e:
print("Error enviando:", e)
return None
@@ -204,6 +207,10 @@ 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:
@@ -253,31 +260,33 @@ def procesar(texto, chat_id):
" ✏️ Ej: <code>/serie breaking bad</code>\n"
"<b>7.</b> <code>novedades</code> — últimas novedades del catálogo\n"
" ✏️ Ej: <code>/novedades</code>\n\n"
"━━━ 🖥️ NAS / DESCARGAS ━━━\n"
"<b>8.</b> <code>descargar &lt;enlace&gt;</code> — añade a Download Station\n"
" ✏️ Ej: <code>/descargar magnet:?xt=urn:btih:...</code>\n\n"
"━━━ 📺 TV ━━━\n"
"<b>9.</b> <code>tv &lt;mensaje&gt;</code> — mensaje rápido a la tele\n"
" ✏️ Ej: <code>/tv la cena está lista</code>\n"
"<b>10.</b> <code>alarma &lt;mensaje&gt;</code> — secuencia completa (sirena x3)\n"
" ✏️ Ej: <code>/alarma vienen a por vosotros</code>\n"
"<b>11.</b> <code>youtube &lt;URL&gt;</code> — reproduce YouTube en la TV\n"
" ✏️ Ej: <code>/youtube https://youtu.be/xxxx</code>\n\n"
"━━━ 🛠️ SISTEMA ━━━\n"
"<b>12.</b> <code>estado</code> — estado de la Pi\n"
" ✏️ Ej: <code>/estado</code>\n"
"<b>13.</b> <code>temperatura</code> — temperatura de la Pi\n"
" ✏️ Ej: <code>/temperatura</code>\n"
"<b>14.</b> <code>panorama</code> — fotos de las cámaras\n"
" ✏️ Ej: <code>/panorama</code>\n"
"<b>15.</b> <code>limpieza</code> — limpia procesos atascados\n"
" ✏️ Ej: <code>/limpieza</code>\n"
"<b>16.</b> <code>servicios</code> — estado de los servicios\n"
" ✏️ Ej: <code>/servicios</code>\n"
"<b>17.</b> <code>reboot</code> — reinicia la Pi\n"
" ✏️ Ej: <code>/reboot</code> → confirmar con <code>/confirmar-reboot</code>\n"
"<b>18.</b> <code>ayuda</code> — este índice\n"
" ✏️ Ej: <code>/ayuda</code>",
"━━━ 🖥️ NAS / DESCARGAS ━━━\n"
"<b>8.</b> <code>descargar</code> — torrents descargándose y su progreso\n"
" ✏️ Ej: <code>/descargar</code>\n"
"<b>9.</b> <code>descargar &lt;enlace&gt;</code> — añade a Download Station\n"
" ✏️ Ej: <code>/descargar magnet:?xt=urn:btih:...</code>\n\n"
"━━━ 📺 TV ━━━\n"
"<b>10.</b> <code>tv &lt;mensaje&gt;</code> — mensaje rápido a la tele\n"
" ✏️ Ej: <code>/tv la cena está lista</code>\n"
"<b>11.</b> <code>alarma &lt;mensaje&gt;</code> — secuencia completa (sirena x3)\n"
" ✏️ Ej: <code>/alarma vienen a por vosotros</code>\n"
"<b>12.</b> <code>youtube &lt;URL&gt;</code> — reproduce YouTube en la TV\n"
" ✏️ Ej: <code>/youtube https://youtu.be/xxxx</code>\n\n"
"━━━ 🛠️ SISTEMA ━━━\n"
"<b>13.</b> <code>estado</code> — estado de la Pi\n"
" ✏️ Ej: <code>/estado</code>\n"
"<b>14.</b> <code>temperatura</code> — temperatura de la Pi\n"
" ✏️ Ej: <code>/temperatura</code>\n"
"<b>15.</b> <code>panorama</code> — fotos de las cámaras\n"
" ✏️ Ej: <code>/panorama</code>\n"
"<b>16.</b> <code>limpieza</code> — limpia procesos atascados\n"
" ✏️ Ej: <code>/limpieza</code>\n"
"<b>17.</b> <code>servicios</code> — estado de los servicios\n"
" ✏️ Ej: <code>/servicios</code>\n"
"<b>18.</b> <code>reboot</code> — reinicia la Pi\n"
" ✏️ Ej: <code>/reboot</code> → confirmar con <code>/confirmar-reboot</code>\n"
"<b>19.</b> <code>ayuda</code> — este índice\n"
" ✏️ Ej: <code>/ayuda</code>",
chat_id)
elif t in ("servicios", "/servicios"):
estado_svc = sh("systemctl is-active pi-bot tv-api autossh-tunel")