Sincronizar mu-plugins/ y scripts/ con el estado real del sitio (2026-07-16)
Este repo llevaba desde el 28-jun sin actualizarse (salvo sync_carta_from_prod.py).
Se pone al dia con 3 semanas de trabajo que solo vivian en el checkout local
completo del proyecto:
- Fix del buscador (issue #178): AND obligatorio en FULLTEXT (antes devolvia
practicamente todo el sitio con cualquier busqueda), exclusion de paginas
indice residuales de la migracion K2, soporte de frase exacta entre comillas.
- Nuevos mu-plugins ya desplegados a prod: fea-carta-id-api, fea-cloudflare-realip,
fea-crear-autor-api, fea-gsc-verification, fea-legacy-redirect (cutover
Joomla->WP, ver issue #162).
- TTS multi-voz por autor, scripts de traduccion, sync de audio a prod,
homenajes Mardones/Galarreta.
Se mantiene la estructura plana del repo (mu-plugins/ + scripts/, sin el
wordpress/wp-content/ del checkout completo) tal y como documenta el README:
es la convencion establecida para este repo, mas limpia para quien solo
necesita leer el codigo. Anadido .gitignore (cache de Python que no debia
commitearse).
Fuente: checkout local completo del proyecto, rama main (commit 69e849d).
This commit is contained in:
+12
-8
@@ -1,8 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Orquestador nocturno: locuta cartas ES del gap con MiniMax (voz Nico), una a
|
||||
una, repartido en el tiempo. Reanudable (meta fea_audio_done) y con freno ante
|
||||
la cuota (para tras N fallos seguidos). NO toca el front; solo genera el mp3 y
|
||||
asocia la URL al post (meta fea_audio_url).
|
||||
"""Orquestador nocturno: locuta cartas ES del gap con MiniMax, una a una,
|
||||
repartido en el tiempo. Voz por defecto Nico; los artículos de autores con voz
|
||||
clonada (AUTHOR_VOICES en minimax_tts.py, ej. Fray Marcos) usan la suya propia.
|
||||
Reanudable (meta fea_audio_done) y con freno ante la cuota (para tras N fallos
|
||||
seguidos). NO toca el front; solo genera el mp3 y asocia la URL al post (meta
|
||||
fea_audio_url).
|
||||
|
||||
Lanzar: nohup ~/tts-local/xtts-venv/bin/python scripts/tts_produce.py > /tmp/feadulta-tts-prod.out 2>&1 &
|
||||
Log: /tmp/feadulta-tts-prod.log
|
||||
@@ -78,7 +80,7 @@ def main():
|
||||
i += 1
|
||||
continue
|
||||
try:
|
||||
title, text = mm.get_post_text(pid)
|
||||
title, text, author = mm.get_post_text(pid)
|
||||
except Exception as e: # noqa: BLE001
|
||||
log(f"#{pid}: error leyendo ({e}); skip")
|
||||
php("setflag", str(pid), "fea_audio_skip", "1")
|
||||
@@ -90,15 +92,17 @@ def main():
|
||||
i += 1
|
||||
continue
|
||||
|
||||
rc = mm.t2a(mm.add_pauses(text), VOICE, MODEL, f"prod-{pid}")
|
||||
voice = mm.voice_for_author(author, VOICE)
|
||||
rc = mm.t2a(mm.add_pauses(text), voice, MODEL, f"prod-{pid}")
|
||||
if rc == 0:
|
||||
src = mm.OUT / f"prod-{pid}.mp3"
|
||||
dst = PROD / f"{pid}.mp3"
|
||||
shutil.move(str(src), str(dst))
|
||||
php("setaudio", str(pid), f"/wp-content/uploads/tts/{pid}.mp3")
|
||||
php("setaudio", str(pid), f"/wp-content/uploads/tts/{pid}.mp3", voice)
|
||||
ok += 1
|
||||
consec = 0
|
||||
log(f"#{pid} OK «{title[:45]}» → tts/{pid}.mp3 (total {ok})")
|
||||
voice_tag = f" [{voice}]" if voice != VOICE else ""
|
||||
log(f"#{pid} OK «{title[:45]}»{voice_tag} → tts/{pid}.mp3 (total {ok})")
|
||||
i += 1
|
||||
time.sleep(INTERVAL)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user