579396c34a
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>
20 lines
641 B
TypeScript
20 lines
641 B
TypeScript
import type { RowDataPacket } from 'mysql2'
|
|
import { db, DB } from './db'
|
|
|
|
/** Nombre del reino desde acore_auth.realmlist (LIMIT 1, por si hay varios). */
|
|
export async function getRealmName(): Promise<string> {
|
|
try {
|
|
const [rows] = await db(DB.auth).query<RowDataPacket[]>(
|
|
'SELECT name FROM realmlist ORDER BY id LIMIT 1',
|
|
)
|
|
return rows[0]?.name || 'NightSpire'
|
|
} catch {
|
|
return 'NightSpire'
|
|
}
|
|
}
|
|
|
|
/** Slug del reino para la URL (p. ej. «Night Spire» → «nightspire», «Trinity» → «trinity»). */
|
|
export function realmSlug(name: string): string {
|
|
return name.toLowerCase().replace(/[^a-z0-9]/g, '')
|
|
}
|