Página de votación de usuario (/vote-points) + enlace en cabecera

- lib/vote.ts: getVoteSites (home_votesite), registerVote (cooldown 12h30 vía
  home_votelog, acredita PV en home_api_points, registra el voto).
- Route /api/vote (POST {url}, guard sesión). Página /vote-points (VotePanel:
  abre el sitio + registra el voto, muestra PV/cooldown). Enlace "Votar" en cabecera.
- Cierra el ciclo con el admin de sitios de voto.

Verificado: /vote-points 200, POST 401 sin sesión; lógica probada: voto -> +PV,
segundo voto -> cooldown 12h29m.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-13 00:06:57 +00:00
parent 934bee2aec
commit f9609aad99
7 changed files with 211 additions and 2 deletions
+15 -1
View File
@@ -10,7 +10,8 @@
"account": "Mi cuenta",
"logout": "Cerrar sesión",
"language": "Idioma",
"forum": "Foros"
"forum": "Foros",
"vote": "Votar"
},
"Home": {
"brand": "Nova WoW",
@@ -300,5 +301,18 @@
"voteImage": "URL de la imagen",
"votePoints": "PV por voto",
"noVotes": "No hay sitios de voto."
},
"Vote": {
"title": "Votar por nosotros",
"info": "Vota por {server} en las siguientes páginas y recibe PV. Puedes votar en cada sitio cada 12 horas.",
"vote": "Votar",
"voting": "Votando…",
"pv": "PV",
"success": "¡Gracias por votar en {site}! Se han acreditado {points} PV.",
"cooldown": "Debes esperar {hours}h {minutes}m para volver a votar en este sitio.",
"siteNotFound": "Sitio de votación no encontrado.",
"genericError": "Algo ha salido mal. Inténtalo más tarde.",
"noSites": "No hay sitios de votación configurados todavía.",
"loginToVote": "Inicia sesión para votar."
}
}