- trad_cats.php: traduce categorías estructurales (Nuevo/Antiguo Testamento, etc.)
- fix_catnames.php: corrige nombres de términos traducidos
- autores_biblicos.php: crea usuarios NT/AT por idioma y reasigna autor de lecturas
- reasign_cats.php: reasigna a cada post no-ES las categorías del ES traducidas a
su idioma (crea término espejo si falta). Idempotente/resumible (_cats_reasignadas).
7977 posts procesados, 0 con categoría en idioma incorrecto.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
build_lectionary_index.py construye un índice por referencia bíblica
descargando un ciclo litúrgico de evangelizo.ws (combina idiomas por
reading_code, robusto a fiestas trasladadas por país). lecturas_apply.py
casa las lecturas ES por referencia y apply_lecturas_wp.php crea+asocia
las traducciones en Polylang. 440/501 lecturas cubiertas y publicadas.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Descarga el texto litúrgico católico oficial en es/en/fr/it/pt por fecha
litúrgica (leccionario), para traducir las lecturas bíblicas de las cartas
sin LLM. Parsea las secciones (1ª lectura, salmo, 2ª lectura, evangelio).
Grupo C de #132.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Unificar backup/ + backups/ + Akeeba sueltos en backups/ etiquetados por fecha
(pre-incidente Enero, Marzo, INFECTED 25-mayo, clean 25-mayo, wp-local-dumps)
- Mover scripts de setup-inicial (Feb 2026) y logs de migración a archive/
- Mover kickstart.* a tools/akeeba-kickstart/
- Borrar joomla-php83-old-local-20260525/ (6.3 GB) y google-chrome.deb
- Conservar solo 2 de 8 dumps WP del 25-mayo (los hotfixes ya están consolidados)
- README de inventario con MD5 en backups/README.md y archive/README.md
- .gitignore: trackear los README dentro de carpetas gitignored
Toma el output de regenerar_clasificacion_csv.py y añade en BD las cats
1645-1650 que el CSV indique y no estén ya. Modo 'add' (default, conservador)
solo añade; modo 'replace' (opt-in) también borra cats sobrantes.
Recalcula wp_term_taxonomy.count tras los cambios.
Aplicado en local 2026-05-25 modo 'add': +183 atribuciones (1645 +1,
1646 +17, 1647 +29, 1648 +11, 1649 +93, 1650 +32). Cubre delta marzo-mayo
2026 + sub-clasificación posicional en evangelio.
Refs #42.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Regla del editor confirmada contra CSV histórico: dentro de "Evangelio y
comentarios al Evangelio" el orden es siempre:
pos 1 → lectura del evangelio
pos 2 → comentario editorial
pos 3+ → comentarios
Mejora diff contra CSV marzo 2026: 8.655 → 9.286 mismas cats
(de 1.599 a 968 divergencias, -631 resueltas).
Residual mayoritario son posts que ya no aparecen en las cartas
actuales (links eliminados, k2 ids sin mapping) o granularidad fina
no implementada (lectura dentro de eucaristía, secciones especiales).
Refs #42.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Reproduce el CSV histórico (marzo 2026) recorriendo todas las cartas
(cat 6+21+22) y extrayendo los links agrupados por encabezado. Paridad
con mu-plugins/fea-carta-portada.php (#38).
Cobertura: 5 secciones core (comentario, articulo, eucaristia,
multimedia, effa). NO cubre granularidad fina del CSV histórico
(lectura, comentario_editorial, otro, noticia) ni encabezados de
fiestas especiales — esos quedan agrupados en la cat más cercana.
Usa pymysql para no depender del CLI mysql (que rompe el parsing
cuando post_content tiene tabs/newlines). Modo --diff compara contra
un CSV de referencia y reporta divergencias.
Resuelve #42.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Re-procesa los 724 avatares col_*.png (imágenes horizontales con foto+texto)
recortándolos cuadrados centrados en la cara antes de mostrarlos como avatar
circular. Resuelve la queja del #39 sobre las fotos "stretcheadas".
- face_crop_avatar.py: Haar cascade frontal+profile, padding 0.6×, fallback
inteligente para imágenes horizontales (recorta lado izquierdo), reduce
side cuando padding no cabe (no invade lado del texto)
- regen_avatars.php: borra thumbnails viejos + regenera con la nueva imagen
para todos los attachments de uploads/autores/joomla/
Resultado: 100 caras detectadas + 624 fallbacks (mayoría placeholders sin
foto real) + 0 fail. Attachment IDs preservados.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Usado para resolver issue #39 — 736 avatares de autor importados desde
joomla-php83/images/quienes_somos/col_*.png. Crea attachments WP con
wp_insert_attachment + wp_generate_attachment_metadata y asigna foto_perfil
a cada user_id según matching exacto (login==slug) o strong (login es token).
Preserva foto_perfil ya asignado. TSV de entrada esperado en
/tmp/avatar_assignments.tsv con columnas: aid, login, posts, source, filename.
Ficheros pre-copiados a uploads/autores/joomla/.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- scripts/fix_image_paths.php: reescribe src/href "images/..." en wp_posts
a "/fea/wp-content/uploads/..." cuando el fichero existe en uploads.
Cubre comillas dobles/simples, urldecode antes de chequear filesystem.
Resuelto contra issue #34 (458 posts, 465 refs) y completado con #36
(124 posts, 128 refs tras recuperar 127 assets del backup producción).
- tools/e2e/: pipeline 3-tier para validar WP local con coste mínimo en
tokens de Claude — Playwright (Tier 1, deterministas) + Gemma 4 vision
en LM Studio (Tier 2, bajo demanda) + Claude solo lee report.md.
Issue de diseño #37, suite inicial en sites/feadulta.json (13 URLs).
- .gitignore: excluir tools/e2e/node_modules y out/.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- fea-homepage.php: nuevo shortcode [fea_prefooter] — 3 columnas (Ediciones |
Noticias de alcance | Publicidad) sobre el footer. Imagen noticias_2025.jpg
apunta a wp-content/uploads/recursos/ (fix ruta Joomla rota). Columna central
y vídeo de la semana son dinámicos (último post de las categorías respectivas).
- scripts/import_new_k2_items.py: importa 169 K2 items nuevos (id > 17873)
- scripts/fix_imported_k2_metas.py: asigna metas/cats/Polylang a esos 169 posts
- scripts/import_new_cartas.py: importa 8 cartas nuevas (ew4r_content id > 9043,
catid 27/40/41) y asigna _carta_id a los artículos K2 por fecha
- scripts/import_new_content.py: importa 58 ítems ew4r_content no-carta
(multimedia, noticias, tablón, etc.) con mapping catid→WP term
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Incluye: mu-plugins custom (fea-homepage, carta-semana), scripts de
migración/traducción/deploy, documentación de auditoría, análisis de
cartas y HTML de evangelios exportados desde Joomla.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>