Changelogs

Textos del token de seguridad: los del original

15 de julio de 2026 a las 18:10

adevopg · d46cea9

- Éxito: «Se ha enviado el Token de seguridad al correo de la cuenta.» (decía «el token de seguridad a tu correo»). - Cooldown: «Sólo puedes solicitar un nuevo Token de seguridad cada 7 días.» (decía «Solo puedes solicitar un token cada 7 días»). El flujo ya funcionaba: tras enviarlo el botón queda desactivado («Token enviado»), así que el aviso rojo sale al recargar y volver a pulsar dentro de los 7 días. Comprobado que MySQL y Node van ambos en UTC sin desfase, que es de lo que depende el cálculo de los 7 días (NOW() al insertar, Date.now() al comparar).




Impedir cuentas Battle.net duplicadas al activar; citar el límite real de 8

15 de julio de 2026 a las 18:02

adevopg · 4f8f101

`registerAccount` ya rechazaba un correo con cuenta bnet, pero `activateAccount` insertaba SIN volver a comprobarlo, y entre registrarse y activar el correo puede dejar de estar libre. Como `battlenet_accounts.email` no tiene índice único, la BD tampoco lo frenaba: hay 3 filas TEST@TEST.COM de 2024 que lo demuestran. Ahora se recomprueba antes del INSERT y se borra la activación, que ya no sirve. Nuevo error `emailExists` (ES/EN) para no soltar un «enlace inválido» que despista. MAX_GAME_ACCOUNTS sube a lib/bnet.ts y lo usa el correo de activación: el texto prometía 10 cuentas mientras el código cortaba en 8, justo por estar el número escrito a mano en los dos sitios. El límite del panel ya funcionaba (API + aviso «Has alcanzado el máximo de cuentas»); solo se centraliza la constante. Verificado en producción con una activación pendiente de un correo que ya tenía bnet: devuelve emailExists, no crea la cuenta y el contador no sube.




Correo de activación: saludar con la cuenta y ajustar los textos

15 de julio de 2026 a las 17:57

adevopg · 1285d33

- El <h1> decía «Bienvenido» a secas; ahora lleva la cuenta detrás, como la plantilla original (`Bienvenido, {{ username }}`), donde `username` era el mismo correo que sale en «Cuenta:». - «Para empezar a usarla, actívala pulsando el botón» -> «Para poder empezar a usar tu cuenta, deberás activarla haciendo clic en el botón ACTIVAR LA CUENTA». - La segunda línea de «Recuerda» pasa a hablar del panel de usuario en vez de «hasta 10 cuentas de juego». Verificado renderizando el correo y extrayendo su texto visible.




Arreglar el aviso de cuenta creada: la comilla simple escapaba el placeholder

15 de julio de 2026 a las 17:53

adevopg · a8cb2f0

Salía literal «La cuenta {email} ha sido creada.». En ICU MessageFormat la comilla simple es el carácter de escape, así que `'{email}'` no son unas comillas alrededor del placeholder: le dicen a ICU que trate `{email}` como texto literal. Por eso la segunda línea, sin comillas, sí interpolaba. La comilla literal en ICU se escribe doblada: `''{email}''`. Barridos los dos ficheros de mensajes (consumiendo antes los `''` para no dar falsos positivos): no había ningún otro caso.




Activación de cuenta: recuperar el diseño del tema y decir QUÉ cuenta se activó

15 de julio de 2026 a las 17:43

adevopg · a78417e

La página mostraba un genérico «¡Cuenta activada!» + enlace a iniciar sesión. Se recupera la estructura de las plantillas del tema (activation_success.html / activation_invalid.html): bienvenida, la cuenta en `yellow-info`, y el aviso de enlace inválido en `red-info2` con la línea de contacto. El original dejaba un hueco: renderizaba `{{ username }}` pero la vista hacía `render(...)` SIN contexto, así que salía «La cuenta ha sido activada». Aquí `activateAccount` devuelve el email y sí se muestra. Va el email tal cual se registró, no el normalizado: ese va en MAYÚSCULAS porque lo exige el SRP6 de Battle.net y en pantalla quedaría como INNA@INNA.CL. El nombre del servidor sale de `getRealmName()` (acore_auth.realmlist), como en el resto de páginas, en vez de escribirlo a mano. Verificado en producción: el caso inválido lo pinta el servidor y sale idéntico al del tema; y activando una fila de prueba, el API devuelve {success, email} y reutilizar el enlace o mandar un hash que no existe dan `invalidLink` (filas de prueba borradas después).





SÍGUENOS EN