Rebranding a NightSpire en toda la web
Marca, dominios y correos: UltimoWoW/Nova WoW -> NightSpire, cualquier URL de esos dominios -> https://www.nightspire.gg y los correos -> consultas@nightspire.gg. 98 sustituciones en 16 ficheros de textos de usuario (messages/, app/, components/). Assets: logo largo de cabecera y vídeo sustituidos por los de NightSpire (el logo nuevo es 214x28, igual que el viejo, así que no hace falta tocar el CSS). Redes: apuntan a las cuentas de NightSpire, tanto en el pie de la web como en el de los correos (que seguían enlazando a las de NovaWoW desde el porte del diseño). Cookie de sesión novawow_session -> nightspire_session. Cierra la sesión de todos los conectados una vez; se asume ahora, recién hecho el cutover. Ficheros del tema renombrados: novawow-style.css -> nightspire-style.css y novawow-main-logo-transparent.webp -> nightspire-main-logo-transparent.webp, para que la marca vieja no quede ni en las rutas. El foro externo (foro.ultimowow.com) pasa a ser el nuestro: <Link> a /forum, que respeta el idioma y no abre pestaña nueva. NO se tocan y es a propósito: - Los comentarios que nombran AzerothCore: describen el comportamiento REAL del core (límite de 12 ítems por correo, convención de baneos, SOAP...). Cambiarlos a NightSpire los volvería falsos. Además AzerothCore no aparece en la web: las 14 menciones son todas comentarios de código. - El regex de brandify() sigue buscando los nombres VIEJOS: son los que hay escritos en las noticias de la BD. - lib/changelog.ts REPO='Inna/NovaWoW': es la ruta real del repo en Gitea. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -51,7 +51,7 @@ export async function requestRecovery(type: string, value: string): Promise<Resu
|
||||
const link = `${site}/reset-password?token=${token}`
|
||||
await sendMail(
|
||||
email,
|
||||
'Restablecer contraseña - Nova WoW',
|
||||
'Restablecer contraseña - NightSpire',
|
||||
passwordResetEmailHtml(email, link),
|
||||
)
|
||||
}
|
||||
@@ -88,7 +88,7 @@ export async function requestRecovery(type: string, value: string): Promise<Resu
|
||||
const nameById = new Map(games.map((g) => [g.id, g.username]))
|
||||
await sendMail(
|
||||
email,
|
||||
'Tu Token de seguridad - Nova WoW',
|
||||
'Tu Token de seguridad - NightSpire',
|
||||
securityTokensListEmailHtml(
|
||||
email,
|
||||
toks.map((r) => ({ username: String(nameById.get(r.user_id) ?? r.user_id), token: r.token })),
|
||||
@@ -116,7 +116,7 @@ export async function requestRecovery(type: string, value: string): Promise<Resu
|
||||
)
|
||||
await sendMail(
|
||||
email,
|
||||
'Tus cuentas de juego - Nova WoW',
|
||||
'Tus cuentas de juego - NightSpire',
|
||||
accountNamesEmailHtml(
|
||||
email,
|
||||
games.map((g) => String(g.username)),
|
||||
@@ -139,7 +139,7 @@ export async function requestRecovery(type: string, value: string): Promise<Resu
|
||||
const link = `${site}/activate-account?act=${rows[0].hash}`
|
||||
await sendMail(
|
||||
email,
|
||||
`Activación de la cuenta ${email} - Nova WoW`,
|
||||
`Activación de la cuenta ${email} - NightSpire`,
|
||||
activationEmailHtml(email, link),
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user