Feat: Añadir panel de métricas con estadísticas por idioma, plataforma y servidor

- Crear página dedicada /metrics con gráficos usando Chart.js
- Implementar función get_translation_stats() en database.py
- Añadir endpoint /api/stats en panel/main.py
- Mostrar métricas de traducciones por idioma, plataforma y servidor Discord
- Agregar tarjeta de acceso rápido a Métricas en el Dashboard
- Actualizar action_plan_pro.md con el progreso completado
This commit is contained in:
2026-03-21 15:15:38 -06:00
parent 6ff79f5d69
commit 77024d443f
5 changed files with 408 additions and 15 deletions

View File

@@ -24,7 +24,7 @@ load_config() # Cargamos configuración inmediatamente
from botdiscord.database import (
init_db, get_ui_translation, save_ui_translation,
get_admins, get_admin_by_username, add_admin, delete_admin,
_normalize_text
_normalize_text, get_translation_stats
)
init_db() # Aseguramos que las tablas existan antes de que FastAPI atienda peticiones
from botdiscord.translate import translate_text
@@ -684,6 +684,25 @@ async def diagnosis_page(request: Request):
"config": config
})
@app.get("/api/stats")
async def get_stats(request: Request):
if request.cookies.get("auth") != "ok":
raise HTTPException(status_code=401)
stats = get_translation_stats()
return stats
@app.get("/metrics")
async def metrics_page(request: Request):
if request.cookies.get("auth") != "ok":
return RedirectResponse(url="/login")
username = request.cookies.get("username", "")
return templates.TemplateResponse("metrics.html", {
"request": request,
"username": username
})
if __name__ == "__main__":
import uvicorn
web_config = get_web_config()