fix(tts): sync_audio_to_prod.py respeta fea_audio_skip (issue #190)

sync_one() solo comprobaba fea_audio_done, ignorando fea_audio_skip. El
guard de #190 se anadio a tts_produce.py (generacion) pero nunca a este
script (subida a prod), asi que cualquier post con audio local obsoleto
de antes del hotfix (ej. #18036, pagina de cuentas/donaciones) volvia a
publicarse en cuanto entrara en el cluster de una carta. Paso hoy con la
carta 741: sync_audio_to_prod.py --carta 56290 restauro el mp3 de 3h27
en produccion. Revertido manualmente; este commit cierra el hueco.

Tambien documenta el alcance correcto del TTS (solo ES, un mp3 por
articulo, nunca multimedia) en la guia de Inma.

Co-authored-by: rafa <rcalvotorrejon@gmail.com>
Signed-off-by: rafa <rcalvotorrejon@gmail.com>
This commit is contained in:
2026-08-26 14:16:07 -04:00
parent 1333a2bb64
commit 37dd1153a8
2 changed files with 16 additions and 0 deletions
+7
View File
@@ -187,6 +187,13 @@ def save_state(state: dict) -> None:
# ── Sync ─────────────────────────────────────────────────────────────────────
def sync_one(post_id: int, state: dict, *, dry_run: bool) -> str:
# issue #190: páginas de cuentas/donaciones (ej. #18036 "numeros") llevan
# fea_audio_skip=1 desde el hotfix del 3-ago, pero pueden conservar un
# fea_audio_done=1 y un mp3 locales obsoletos de antes del guard. Sin este
# chequeo, cualquier --carta cuyo cluster las incluya vuelve a publicar el
# audio improcedente en prod (nos pasó el 26-ago con la carta 741).
if local_meta(post_id, "fea_audio_skip") == "1":
return "excluido (fea_audio_skip)"
if local_meta(post_id, "fea_audio_done") != "1":
return "sin-audio-local"
if not (LOCAL_TTS_DIR / f"{post_id}.mp3").exists():