Sobre o projeto

Torn Faction Attacks é um Cloudflare Worker e dashboard React projetado para importar dados de ataques de facção do Torn para o Cloudflare D1 e rastrear o desempenho de facção em nível de guerra e de membro. Recursos principais incluem ingestão agendada da API do Torn, armazenamento imutável de ataques, rastreamento de guerras (ativas, agendadas, encerradas, importadas), atribuição automática de ataques a janelas de guerra, tabelas de resumo para totais de guerra e estatísticas de membros, endpoints de API JSON e um dashboard React. Stack: Cloudflare Workers, D1, Wrangler, TypeScript, Torn API v2. A estrutura do projeto é modular, com arquivos para ingestão, guerras, relatórios, resumos, reconhecimento de inimigos, autenticação, auxiliares SQL, constantes, tipos e utilitários. As migrações adicionam incrementalmente tabelas para ataques, guerras, estado de sincronização, resumos, estatísticas de membros, membros de facções inimigas/locais, mapas de calor de atividade, usuários administradores e sessões de autenticação. A configuração requer um binding D1 chamado `DB`, um segredo `TORN_API_KEY` e segredos opcionais para as APIs BSP e FFScouter. Um segredo compartilhado `MONITOR_TICKET_SECRET` assina tickets WebSocket para um monitor de hospital inimigo. O ID da facção local é configurado em `src/constants.ts`. As migrações de banco de dados podem ser aplicadas local ou remotamente via Wrangler. As tabelas principais estão listadas no README. Os endpoints da API incluem verificações de saúde, ingestão manual, reconstrução de estatísticas, listagem de ataques, criar/importar/encerrar guerras, obter resumos de guerra, reconhecimento de inimigos, comparação de reconhecimento, mapas de calor de atividade, bônus de cadeia e recálculo de respeito de membros. A autenticação usa chaves do Torn e o acesso administrativo é concedido a membros da facção, opcionalmente adicionando administradores automaticamente com acesso à facção. Um comando slash do Discord `/war me` mostra o desempenho de ataque do solicitante e o respeito ganho de forma privada, sujeito a um tempo de espera de 30 segundos por guerra/membro. A ingestão agendada executa a cada minuto via cron, tratando criação/ativação de guerras, busca de ataques, atualizações de resumo, rastreamento de pontuação e reconhecimento de inimigos. Uma execução de manutenção a cada 15 minutos amostra atividade, atualiza status de revivibilidade, busca relatórios ausentes e tenta novamente estimativas de estatísticas. As instruções de desenvolvimento cobrem instalação, verificações, desenvolvimento local e implantação. O dashboard React em `dashboard/` é implantado via Cloudflare Pages com configurações de build e uma variável de ambiente para a URL base da API. O modelo administrativo é intencionalmente leve enquanto o projeto está evoluindo.