Sobre el proyecto
Torn Faction Attacks es un Cloudflare Worker y un panel React diseñado para importar datos de ataques de facciones de Torn a Cloudflare D1 y realizar seguimiento del rendimiento de la facción a nivel de guerra y de miembro.
Las funciones principales incluyen ingesta programada desde la API de Torn, almacenamiento inmutable de ataques, seguimiento de guerras (activas, programadas, finalizadas, importadas), asignación automática de ataques a ventanas de guerra, tablas de resumen para totales de guerra y estadísticas de miembros, endpoints de API JSON y un panel React.
Tecnologías: Cloudflare Workers, D1, Wrangler, TypeScript y Torn API v2.
La estructura del proyecto es modular, con archivos para ingesta, guerras, informes, resúmenes, exploración enemiga, autenticación, asistentes SQL, constantes, tipos y utilidades. Las migraciones añaden gradualmente tablas para ataques, guerras, estado de sincronización, resúmenes, estadísticas de miembros, miembros de facciones enemigas y propias, mapas de calor de actividad, usuarios administradores y sesiones de autenticación.
La configuración requiere un enlace D1 denominado `DB`, un secreto `TORN_API_KEY` y secretos opcionales para las API de BSP y FFScouter. Un secreto compartido, `MONITOR_TICKET_SECRET`, firma los tickets de WebSocket para un monitor de hospital enemigo. El ID de la facción propia se configura en `src/constants.ts`.
Las migraciones de base de datos pueden aplicarse local o remotamente mediante Wrangler. Las tablas principales se enumeran en el README.
Los endpoints de la API incluyen comprobaciones de estado, ingesta manual, reconstrucción de estadísticas, lista de ataques, creación/importación/finalización de guerras, obtención de resúmenes de guerra, exploración enemiga, comparación de exploración, mapas de calor de actividad, bonificaciones de cadena y recálculo de respeto de miembros. La autenticación utiliza claves de Torn y el acceso de administración se concede a los miembros de la facción, con la opción de añadir automáticamente administradores con acceso de facción.
Un comando slash de Discord, `/war me`, muestra el rendimiento de ataques y el respeto obtenido del autor de forma privada, sujeto a un tiempo de espera de 30 segundos por guerra/miembro.
La ingesta programada se ejecuta cada minuto mediante cron, gestionando la creación/activación de guerras, la obtención de ataques, la actualización de resúmenes, el seguimiento de puntuaciones y la exploración enemiga. Una ejecución de mantenimiento cada 15 minutos muestrea la actividad, actualiza el estado de revivibilidad, obtiene informes faltantes y reintenta las estimaciones de estadísticas.
Las instrucciones de desarrollo cubren instalación, comprobaciones, desarrollo local y despliegue. El panel React en `dashboard/` se despliega mediante Cloudflare Pages con ajustes de compilación y una variable de entorno para la URL base de la API.
El modelo de administración es intencionalmente ligero mientras el proyecto sigue evolucionando.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.