d1becaaf14
- Plantillas: los textos hardcodeados "WotLK 3.3.5a" pasan a "3.4.3" (title, description, keywords, og:* en head.html; encabezado de la portada). - Expansión: se centraliza en ServerSelection (helper expansion_from_gamebuild + propiedad .expansion) y se reconoce WoW Classic: WotLK Classic 3.4.x (~44832–51536, p.ej. 3.4.3=51505) además de 3.3.5a (12340), y Cataclysm Classic 4.4.x además de 4.3.4 (15595). Se elimina la lógica duplicada de los 4 sitios (api, context_processor, pages x2) que solo mapeaban 12340->WotLK. El ServerSelection de Nova WoW queda en build 51505 (3.4.3) -> etiqueta WotLK, puerto 1119 (bnetserver). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
from ._base import *
|
|
from .pages import check_server_status, get_online_characters_count
|
|
|
|
# Endpoints JSON que alimentan las islas React/TSX del frontend (Vite).
|
|
# Se montan bajo /api/ (fuera de i18n_patterns). De momento con JsonResponse;
|
|
# si crece la superficie de la API se puede introducir DRF.
|
|
|
|
|
|
def home_news_api(request):
|
|
"""Últimas noticias para la isla de la portada."""
|
|
noticias = Noticia.objects.order_by('-fecha_publicacion')[:50]
|
|
data = [
|
|
{
|
|
"id": n.id,
|
|
"titulo": n.titulo,
|
|
"fecha": n.fecha_publicacion.isoformat() if n.fecha_publicacion else None,
|
|
"contenido": n.contenido,
|
|
"enlace": n.enlace or None,
|
|
}
|
|
for n in noticias
|
|
]
|
|
return JsonResponse({"noticias": data})
|
|
|
|
|
|
def home_status_api(request):
|
|
"""Estado del servidor para la isla de la portada (nombre, online, login, dirección)."""
|
|
server = ServerSelection.objects.first()
|
|
online = get_online_characters_count()
|
|
status = "Online" if (server and check_server_status(server.address, server.port)) else "Offline"
|
|
expansion = server.expansion if server else "Unknown"
|
|
return JsonResponse(
|
|
{
|
|
"server_name": server.name if server else None,
|
|
"address": server.address if server else None,
|
|
"expansion": expansion,
|
|
"online_characters": online,
|
|
"status": status,
|
|
}
|
|
)
|