04-ago: [videoclub] comando 'serie <nombre>' (temporadas/capitulos con enlaces) + filtros ampliados (peliculas sin limite de anio, series con subs ES/EN) + lecciones 43-48

This commit is contained in:
juanjo
2026-08-04 01:04:45 +02:00
parent 46af244e56
commit 35264ac8e5
3 changed files with 226 additions and 18 deletions

View File

@@ -118,9 +118,17 @@
42. **Reiniciar autossh de la Pi**: `systemctl restart autossh-tunel` puede fallar con `remote port forwarding failed for listen port 2222` porque queda un proceso autossh viejo con los puertos. Fix: `pkill -f autossh` + `pkill -f "ssh.*-R"` y luego restart. Al matar el túnel se corta la propia conexión SSH (hay que reconectar).
43. **Comando `pelis` en pi_bot**: Lista novedades con buena calidad en castellano del catálogo Torrentio/RealDebrid con el comando `descargar <url>` ya montado para copiar/pegar. Filtros: castellano = regex `Esp|Castellano|Span|dual|lat`; calidad mala excluida = `CAMRip|TS.|HDTS|Telesync|KinoRip|Screener|HDCAM`; año >= 2024. Se trocea en mensajes <=3500 chars (Telegram corta a ~4096). Adultos van en mensaje efímero que se borra a los 5 min (`threading.Timer(300, ...)` + `deleteMessage`) y NO se loguean. Módulo autónomo: `vigilancia/pelis.py` (lee `os.environ` primero, luego `.env`).
43. **Comando `pelis` en pi_bot**: Lista novedades con buena calidad en castellano del catálogo Torrentio/RealDebrid con el comando `descargar <url>` ya montado para copiar/pegar. Filtros: castellano = regex `Esp|Castellano|Span|Spanish|dual|lat|ES|audio`; calidad mala excluida = `CAMRip|TS.|HDTS|Telesync|KinoRip|Screener|HDCAM|r5`; **sin límite de año** (se quitó el `ano_min=2024` — el usuario pidió no limitar). Se trocea en mensajes <=3500 chars (Telegram corta a ~4096). Adultos van en mensaje efímero que se borra a los 5 min (`threading.Timer(300, ...)` + `deleteMessage`) y NO se loguean. Módulo autónomo: `vigilancia/pelis.py` (lee `os.environ` primero, luego `.env`).
44. **El token RD y las credenciales NAS están en el `.env` de la Pi** (`/home/pi/minipc/vigilancia/.env`): `TORRENTIO_RD_TOKEN`, `NAS_HOST=192.168.50.31`, `NAS_PORT=5000`, `NAS_USER`, `NAS_PASS`. Hubo un bug previo donde `NAS_HTTPS=0TORRENTIO_RD_TOKEN=...` quedaron pegados en una línea — ojo al editar el `.env` por SSH.
45. **Comando `series` en pi_bot**: Como `pelis` pero solo series del catálogo, con el comando `descargar <url>` listo. La detección de castellano en series no sirve igual que en películas (sus nombres no traen marcadores Esp/Castellano). Criterio: la config ya es `language=spanish`, así que se aceptan las series con marcador positivo **o inglés** (`INGLES`: Eng, English, Inglés, EN) o neutro, y se excluyen las que tienen marcador claro de otro idioma (`OTRO_IDIOMA`: Ita\b, MIRCrew, RO\s?EN, South Wind, Silver Zero, Francais, Deutsch, Português). `seleccionar_series()` + `generar_series()` en `vigilancia/pelis.py`.
46. **Persistencia en la Pi**: Los servicios `pi-bot`, `tv-api` y `autossh-tunel` están `enabled` (arrancan solos al boot). El código desplegado vive en `/home/pi/minipc/vigilancia/` (dueño `pi`), no en /tmp. Verificar siempre `systemctl is-enabled` tras desplegar.
47. **Comando `serie &lt;nombre&gt;` en pi_bot**: Busca una serie por nombre en el catálogo y lista TODAS sus temporadas/capítulos con el enlace `descargar <url>` debajo de cada uno. Funciones nuevas en `pelis.py`: `SERIE_EP_RE`/`CAP_RE` (patrones `S01E05` y `Cap.X`), `parsear_episodio()`, `serie_base()` (título base antes del marcador), `_limpiar_titulo_ep()` (quita extensión, calidad, idiomas, `\dx\d\d`, corchetes y tokens sucios), `agrupar_por_serie()`, `formatear_episodio()`, `buscar_serie()`. `generar_series()` ahora agrupa por serie con sus capítulos debajo (2 mensajes ~3750 chars total). Los `EXTRA_SUCIO` se ampliaron con webdl, x264/x265, aac, resoluciones, spanish, cast/dual/lat, es/en, audio/sub/subs, web/dl.
48. **Despliegue de ficheros a la Pi fiable**: NO usar `echo $b64 | ssh VPS "sshpass ssh pi 'base64 -d | bash'"` encadenado con comillas anidadas (rompe el base64 con `invalid input`). Método robusto: (1) mandar el fichero como base64 por stdin: `Write-Output $b64 | ssh VPS "sshpass ssh pi 'cat > /tmp/x.b64'"`; (2) mandar un script pequeño (también por stdin base64) que haga `base64 -d /tmp/x.b64 > destino && python3 -m py_compile && systemctl restart`. El `base64: invalid input` que sale al final es ruido residual del pipe, no error real.