From 7752045b02e6ea393734488f6938903e018d7cd4 Mon Sep 17 00:00:00 2001 From: rafa Date: Wed, 17 Jun 2026 21:05:06 -0400 Subject: [PATCH] Documentar flujo recurrente de carta semanal nueva --- Ciclo-carta-nueva.md | 57 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Ciclo-carta-nueva.md diff --git a/Ciclo-carta-nueva.md b/Ciclo-carta-nueva.md new file mode 100644 index 0000000..5b23fe4 --- /dev/null +++ b/Ciclo-carta-nueva.md @@ -0,0 +1,57 @@ +# Ciclo por cada carta semanal nueva + +Flujo recurrente que se dispara cuando se publica una **carta nueva** en Joomla (`feadulta.com`, `ew4r_content` catid 27/40/41, `state=1`). + +Repo: `/home/rafa/joomla-migration/`. WP local: contenedores Docker `wordpress-web` / `wordpress-mysql`. + +## Pasos + +### 1. Migrar el delta a WP local (carta + sus artículos K2) +- `python3 scripts/import_new_k2_items.py` — artículos (`LAST_K2_ID` y `wp_id` dinámicos, sin offset). +- `python3 scripts/import_new_cartas.py` — carta + `_carta_id` por fecha, detección dinámica de `wp_id`. +- Scripts corregidos 2026-06-17: eliminado el offset fijo +26040, `LAST_*` dinámicos, `LAST_INSERT_ID()`→`MAX(ID)`, pass SSH actualizada, `mysql --skip-ssl`. `fix_imported_k2_metas.py` es redundante (no usar). + +### 2. Revisión en local +Revisar antes de tocar producción. + +### 3. Desplegar el delta ES a prod +Con el OK de la revisión. + +### 4. Traducción (EN/FR/IT/PT) del contenido nuevo + +**Para carta nueva: usar Haiku directo (rápido + calidad), NO Gemma.** + +```bash +FEA_ENGINE=haiku python3 scripts/translate_post.py --carta --langs en,fr,it,pt --status draft +``` + +- El flag `FEA_ENGINE=haiku` (añadido a `translate_post.py` el 2026-06-17) enruta a `translate_haiku.translate()`, envía el artículo entero sin trocear (contexto 200k) y registra el modelo `claude-haiku-4-5`. +- API key en `/home/rafa/portfolio-tracker/.env`. +- Idempotente (state en `/tmp/feadulta-translate-state.json`), salta posts no-ES y traducciones ya existentes. +- Coste ~0.6–0.8 € por carta (~60 traducciones). +- Artículos que ya vienen en varios idiomas desde Joomla se importan como posts sueltos **sin** enlace Polylang → hay que enlazarlos como grupo de traducción (`pll_save_post_translations`). + +#### 4b. OBLIGATORIO tras traducir: arreglar enlaces internos de la carta +El cuerpo de la carta trae enlaces Joomla legacy **relativos** `es/buscadoravanzado/item/-.html` que **no funcionan** (al verlos en `/fea/en/...` el navegador los resuelve como relativos y redirige a `/fea/en`). Están rotos también en la ES. + +`fix_carta_links.php` **NO** sirve para esto (ignora `.html` y solo toca posts con `localhost:8081`). Usar: + +```bash +# dry-run +docker exec -e CARTA= wordpress-web php /tmp/fix_carta_joomla_links.php +# aplicar (backup en /tmp/fix_carta_links_bak/) +docker exec -e APPLY=1 -e CARTA= wordpress-web php /tmp/fix_carta_joomla_links.php +``` + +`scripts/fix_carta_joomla_links.php` (creado 2026-06-17) mapea cada `item/` por la meta `_fgj2wp_old_k2_id` → permalink WP del artículo en el idioma de **cada** carta (la ES + sus 4 traducciones, vía `pll_get_post_translations`). Quedan sin mapear los enlaces a contenido no migrado (secciones `tablon-de-anuncios`/`noticias-de-alcance`, ítems fuera del delta, multimedia) — se dejan intactos. + +### 5. TTS (audio voz Nico, MiniMax HD) +**Con prioridad sobre el contenido antiguo del gap:** locutar primero la carta nueva y sus artículos antes de seguir vaciando la cola histórica. Requiere ajustar el orden de cola en `scripts/tts_produce.py` (hoy tiene el gap hardcodeado). Enlazar `fea_audio_url` / `fea_audio_done` y subir el mp3 a prod. + +## Notas operativas +- **TTS**: el plan MiniMax rinde ~6 audios por ventana de cuota (`rc=2056` al agotarse, se resetea en horas); `rc=1039` = rate TPM por minuto (mitigado con pausa de 35s entre trozos de cartas largas, `FEA_CHUNK_PAUSE`). Para acelerar de verdad: comprar créditos MiniMax. +- Artículos de evangelio nuevos: les falta `_cita_evangelio` (shortcodes de evangelio) — asignar si procede. +- Los IDs ES coinciden local↔prod (clave para el sync de traducciones). + +## Historial +- **2026-06-17** — Carta 46956 «Entre todos»: delta migrado, carta publicada (issue #87, era timezone `future`), cluster multiidioma 46951–46955 enlazado, 60 traducciones Haiku en draft (0 errores), 100 enlaces internos arreglados en las 5 cartas.