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 = "WotLK" if (server and server.gamebuild == 12340) else "Cataclysm" return JsonResponse( { "server_name": server.name if server else None, "address": server.address if server else None, "expansion": expansion, "online_characters": online, "status": status, } )