Sync: guardar en el historial el trabajo de las ultimas semanas que solo vivia en el disco
Este repo local tenia origin apuntando al Gitea local (localhost:3000), que Rafa
declaro archivado el 2026-06-28 (commit 962f33a, desarrollo movido a
gitea.feadulta.com). Ese memo nunca llego a este checkout: main quedo congelado
y todo el trabajo real de las ultimas 3+ semanas se fue commiteando solo en la
rama fix/multiidioma-portada-132 (ya fusionada a main sin perdida, commit
2504666), mientras que ademas se acumulaban 78 cambios sin commitear en el
working tree que nunca llegaron a NINGUN historial de git.
Este commit consolida esos cambios sueltos: TTS multi-voz (tts_*.py), scripts
de traduccion (translate_haiku.py, pretranslate_en_haiku.py, sync_translations_to_prod.py),
mu-plugins nuevos desplegados a prod (fea-beta-feedback, fea-cloudflare-realip,
fea-legacy-redirect, fea-gsc-verification, fea-support-campaign, fea-ui, etc.),
scripts de mantenimiento de enlaces/cartas, capturas E2E (tools/e2e/shot_*.cjs)
y documentacion de sesiones recientes.
Excluido deliberadamente (no es codigo versionable): tts-voices/ (3.3GB de
muestras de audio para clonacion de voz, anadido a .gitignore), logs/ (logs de
ejecucion, anadido a .gitignore), y 2 ficheros vacios accidentales + 2 copias
duplicadas sueltas en la raiz que ya existen en su ubicacion correcta.
This commit is contained in:
@@ -20,7 +20,7 @@ from datetime import datetime
|
||||
|
||||
JOOMLA_SSH_HOST = "134.0.10.170"
|
||||
JOOMLA_SSH_USER = "feadulta"
|
||||
JOOMLA_SSH_PASS = "6Rm2qOF@eundwpda"
|
||||
JOOMLA_SSH_PASS = "C6c2A!mAl3Wj.BQF"
|
||||
JOOMLA_DB_HOST = "127.0.0.1"
|
||||
JOOMLA_DB_USER = "fejoomla3"
|
||||
JOOMLA_DB_PASS = "5FF-}5^[>7^pK4W9"
|
||||
@@ -31,7 +31,7 @@ WP_DB_USER = "wordpress_user"
|
||||
WP_DB_PASS = "wordpress_pass"
|
||||
WP_DB_NAME = "wordpress_db"
|
||||
|
||||
LAST_CONTENT_ID = 9043 # último ew4r_content.id ya en WP
|
||||
LAST_CONTENT_ID = None # se calcula dinámicamente en main(): MAX(_fgj2wp_old_content_id) en WP
|
||||
|
||||
# WP term_ids y sus term_taxonomy_ids (se cargan dinámicamente)
|
||||
CAT_FEADULTA = 71
|
||||
@@ -50,7 +50,7 @@ DRY_RUN = '--dry-run' in sys.argv
|
||||
# ── Helpers ────────────────────────────────────────────────────────────────────
|
||||
|
||||
def joomla_query(query: str) -> list[dict]:
|
||||
mysql_cmd = (f"mysql -h {JOOMLA_DB_HOST} -u {JOOMLA_DB_USER} "
|
||||
mysql_cmd = (f"mysql --skip-ssl -h {JOOMLA_DB_HOST} -u {JOOMLA_DB_USER} "
|
||||
f"-p'{JOOMLA_DB_PASS}' {JOOMLA_DB_NAME} "
|
||||
f"--default-character-set=utf8mb4 -B")
|
||||
cmd = ['sshpass', '-p', JOOMLA_SSH_PASS,
|
||||
@@ -111,6 +111,11 @@ def unhex(val: str) -> str:
|
||||
# ── Main ───────────────────────────────────────────────────────────────────────
|
||||
|
||||
def main():
|
||||
global LAST_CONTENT_ID
|
||||
# Detección dinámica del último ew4r_content (carta) ya importado
|
||||
r = wp_mysql("SELECT MAX(CAST(meta_value AS UNSIGNED)) m FROM wp_postmeta "
|
||||
"WHERE meta_key='_fgj2wp_old_content_id'")
|
||||
LAST_CONTENT_ID = int(r[0]['m']) if r and r[0].get('m') and r[0]['m'] != 'NULL' else 9043
|
||||
print(f"=== Import nuevas cartas (ew4r_content id > {LAST_CONTENT_ID}) "
|
||||
f"{'[DRY RUN]' if DRY_RUN else '[LIVE]'} ===\n")
|
||||
|
||||
@@ -172,7 +177,10 @@ def main():
|
||||
created_by = int(item.get('created_by', 0) or 0)
|
||||
|
||||
content = intro + ('\n<!--more-->\n' + full if full.strip() else '')
|
||||
wp_author = user_map.get(created_by, 1)
|
||||
# La carta semanal SIEMPRE la firma Inma Calvo (WP user 1048 icalvotorre),
|
||||
# aunque en Joomla la cree el webmaster (José Chicharro / josek 1049).
|
||||
CARTA_AUTHOR = 1048
|
||||
wp_author = CARTA_AUTHOR
|
||||
wp_cats = CATID_TO_WP.get(catid, [CAT_CARTAS_OTRAS, CAT_FEADULTA])
|
||||
fecha_carta = created[:10] # YYYY-MM-DD
|
||||
|
||||
@@ -237,18 +245,28 @@ def main():
|
||||
|
||||
print("\n=== Asignando _carta_id a artículos K2 ===")
|
||||
|
||||
# Obtener los artículos K2 nuevos con su fecha (id 15)
|
||||
# Obtener los artículos K2 con su fecha (id 15), acotando por la fecha más
|
||||
# antigua de las cartas importadas en esta ejecución (evita recorrer todo).
|
||||
min_fecha = min(fecha_a_wp_carta.keys())
|
||||
k2_query = (
|
||||
f"SELECT id, HEX(extra_fields) ef "
|
||||
f"FROM ew4r_k2_items WHERE published=1 AND id > 17873 ORDER BY id;"
|
||||
f"FROM ew4r_k2_items WHERE published=1 AND created >= '{min_fecha} 00:00:00' "
|
||||
f"ORDER BY id;"
|
||||
)
|
||||
k2_items = joomla_query(k2_query)
|
||||
print(f"Artículos K2 a procesar: {len(k2_items)}")
|
||||
print(f"Artículos K2 a procesar (desde {min_fecha}): {len(k2_items)}")
|
||||
|
||||
assigned = 0
|
||||
for k2item in k2_items:
|
||||
k2_id = int(k2item['id'])
|
||||
wp_id = k2_id + 26040 # offset conocido
|
||||
# wp_id REAL por meta (NO offset fijo, que pisaba metas en deltas sucesivos)
|
||||
wp_rows = wp_mysql(
|
||||
f"SELECT post_id FROM wp_postmeta WHERE meta_key='_fgj2wp_old_k2_id' "
|
||||
f"AND meta_value='{k2_id}' LIMIT 1"
|
||||
)
|
||||
if not wp_rows:
|
||||
continue
|
||||
wp_id = int(wp_rows[0]['post_id'])
|
||||
ef_raw = unhex(k2item.get('ef',''))
|
||||
|
||||
# Parsear fecha (id 15)
|
||||
|
||||
Reference in New Issue
Block a user