Corrige a 3.4.3 (WotLK Classic + bnet) textos y lógica de expansión

- 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>
This commit is contained in:
2026-07-12 20:31:40 +00:00
parent d612b7916c
commit d1becaaf14
6 changed files with 31 additions and 12 deletions
+1 -1
View File
@@ -35,5 +35,5 @@ def get_server_info(request):
return { return {
'server': server_selection, 'server': server_selection,
'online_characters': online_count, 'online_characters': online_count,
'expansion': 'WotLK' if server_selection and server_selection.gamebuild == 12340 else 'Cataclysm', 'expansion': server_selection.expansion if server_selection else 'Unknown',
} }
+21 -2
View File
@@ -2,6 +2,22 @@ from django.db import models
from django_ckeditor_5.fields import CKEditor5Field from django_ckeditor_5.fields import CKEditor5Field
def expansion_from_gamebuild(gamebuild):
"""Etiqueta de expansión a partir del build del cliente.
Reconoce tanto los clientes retail antiguos (3.3.5a=12340, 4.3.4=15595) como
los de WoW Classic: WotLK Classic 3.4.x (~4483251536) y Cataclysm Classic
4.4.x (~54332+). Nova WoW corre 3.4.3 (WotLK Classic), luego debe dar 'WotLK'.
"""
if gamebuild is None:
return 'Unknown'
if gamebuild == 12340 or 44000 <= gamebuild <= 52000:
return 'WotLK'
if gamebuild == 15595 or 53000 <= gamebuild <= 60000:
return 'Cataclysm'
return 'Unknown'
class Noticia(models.Model): class Noticia(models.Model):
titulo = models.CharField(max_length=200) titulo = models.CharField(max_length=200)
contenido = CKEditor5Field('Contenido', config_name='default') contenido = CKEditor5Field('Contenido', config_name='default')
@@ -40,9 +56,12 @@ class ServerSelection(models.Model):
port = models.IntegerField() port = models.IntegerField()
gamebuild = models.IntegerField() gamebuild = models.IntegerField()
@property
def expansion(self):
return expansion_from_gamebuild(self.gamebuild)
def __str__(self): def __str__(self):
expansion = 'WotLK' if self.gamebuild == 12340 else 'Cataclysm' if self.gamebuild == 15595 else 'Unknown' return f"{self.name} ({self.expansion})"
return f"{self.name} ({expansion})"
class DownloadClientPage(models.Model): class DownloadClientPage(models.Model):
title = models.CharField(max_length=255, default="Descarga del cliente") title = models.CharField(max_length=255, default="Descarga del cliente")
+5 -5
View File
@@ -4,9 +4,9 @@
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0"> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0">
<title>{{ NOMBRE_SERVIDOR }} Server de WoW WotLK 3.3.5a Latino y Español 💎</title> <title>{{ NOMBRE_SERVIDOR }} Server de WoW WotLK 3.4.3 Latino y Español 💎</title>
<meta name="description" content="Descarga y juega gratis a WotLK en {{ NOMBRE_SERVIDOR }} - Server de WoW WotLK 3.3.5a Latino y Español - El mejor server de WoW 🔥" /> <meta name="description" content="Descarga y juega gratis a WotLK en {{ NOMBRE_SERVIDOR }} - Server de WoW WotLK 3.4.3 Latino y Español - El mejor server de WoW 🔥" />
<meta name="keywords" content="server wow, server wotlk, server 3.3.5a, servidor de wow, servidor wotlk, servidor 3.3.5a, servidor de wow español, server de wow latino, wow 3.3.5a latino, wow 3.3.5a español, server wow en español, server wotlk blizzlike, server 3.3.5a, el mejor server de wow, servidores de wow gratis, servidores de wow gratis en español, servidores para jugar al wow gratis, server wow wotlk 3.3.5a, {{ NOMBRE_SERVIDOR }}" /> <meta name="keywords" content="server wow, server wotlk, server 3.4.3, servidor de wow, servidor wotlk, servidor 3.4.3, servidor de wow español, server de wow latino, wow 3.4.3 latino, wow 3.4.3 español, server wow en español, server wotlk blizzlike, server 3.4.3, el mejor server de wow, servidores de wow gratis, servidores de wow gratis en español, servidores para jugar al wow gratis, server wow wotlk 3.4.3, {{ NOMBRE_SERVIDOR }}" />
<meta name="yandex-verification" content="4e86b91aa5a35470" /> <meta name="yandex-verification" content="4e86b91aa5a35470" />
<meta name="msvalidate.01" content="8A6F294567EA3FFA94F2DC10104E6527" /> <meta name="msvalidate.01" content="8A6F294567EA3FFA94F2DC10104E6527" />
@@ -17,9 +17,9 @@
<meta name="msapplication-config" content="{{ URL_PRINCIPAL }}/static/browserconfig.xml" /> <meta name="msapplication-config" content="{{ URL_PRINCIPAL }}/static/browserconfig.xml" />
<meta property="og:site_name" content="{{ NOMBRE_SERVIDOR }}" /> <meta property="og:site_name" content="{{ NOMBRE_SERVIDOR }}" />
<meta property="og:title" content="{{ NOMBRE_SERVIDOR }} Server de WoW WotLK 3.3.5a Latino y Español 💎" /> <meta property="og:title" content="{{ NOMBRE_SERVIDOR }} Server de WoW WotLK 3.4.3 Latino y Español 💎" />
<meta property="og:type" content="website" /> <meta property="og:type" content="website" />
<meta property="og:description" content="Juega gratis WotLK en {{ NOMBRE_SERVIDOR }} - Server de WoW WotLK 3.3.5a Latino y Español - El mejor server de WoW" /> <meta property="og:description" content="Juega gratis WotLK en {{ NOMBRE_SERVIDOR }} - Server de WoW WotLK 3.4.3 Latino y Español - El mejor server de WoW" />
<meta property="og:url" content="{{ URL_PRINCIPAL }}/es/" /> <meta property="og:url" content="{{ URL_PRINCIPAL }}/es/" />
<meta property="og:image" content="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-logos/novawow-og-logo.png" /> <meta property="og:image" content="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-logos/novawow-og-logo.png" />
<meta property="og:locale" content="es_ES" /> <meta property="og:locale" content="es_ES" />
+1 -1
View File
@@ -3,7 +3,7 @@
<div class="main-page"> <div class="main-page">
<div class="middle-content middle-content-index"> <div class="middle-content middle-content-index">
<div class="body-content"> <div class="body-content">
<div class="title-content"><h1>{{ NOMBRE_SERVIDOR }} WOTLK 3.3.5A</h1></div> <div class="title-content"><h1>{{ NOMBRE_SERVIDOR }} WOTLK 3.4.3</h1></div>
<div class="box-content"> <div class="box-content">
<div class="raf-index-holder"> <div class="raf-index-holder">
<div class="right-content" id="right-content-min"> <div class="right-content" id="right-content-min">
+1 -1
View File
@@ -27,7 +27,7 @@ def home_status_api(request):
server = ServerSelection.objects.first() server = ServerSelection.objects.first()
online = get_online_characters_count() online = get_online_characters_count()
status = "Online" if (server and check_server_status(server.address, server.port)) else "Offline" status = "Online" if (server and check_server_status(server.address, server.port)) else "Offline"
expansion = "WotLK" if (server and server.gamebuild == 12340) else "Cataclysm" expansion = server.expansion if server else "Unknown"
return JsonResponse( return JsonResponse(
{ {
"server_name": server.name if server else None, "server_name": server.name if server else None,
+2 -2
View File
@@ -28,7 +28,7 @@ def home_view(request):
online_characters = get_online_characters_count() online_characters = get_online_characters_count()
server_selection = ServerSelection.objects.first() server_selection = ServerSelection.objects.first()
status = check_server_status(server_selection.address, server_selection.port) if server_selection else None status = check_server_status(server_selection.address, server_selection.port) if server_selection else None
game_version = 'WotLK' if server_selection and server_selection.gamebuild == 12340 else 'Cataclysm' game_version = server_selection.expansion if server_selection else 'Unknown'
context = { context = {
'noticias': noticias, 'noticias': noticias,
@@ -54,7 +54,7 @@ def server_status_view(request):
server_selection = ServerSelection.objects.first() server_selection = ServerSelection.objects.first()
if server_selection: if server_selection:
status = check_server_status(server_selection.address, server_selection.port) status = check_server_status(server_selection.address, server_selection.port)
game_version = 'WotLK' if server_selection.gamebuild == 12340 else 'Cataclysm' game_version = server_selection.expansion
else: else:
status = None status = None
game_version = None game_version = None