このプロジェクトについて

Torn Faction Attacksは、Tornのファクション攻撃データをCloudflare D1にインポートし、戦争単位およびメンバー単位でのファクションのパフォーマンスを追跡するために設計された、Cloudflare WorkerとReact製のダッシュボードです。 主な機能には、Torn APIからの定期的な取り込み、変更不可の攻撃データストレージ、戦争の追跡(進行中、予定済み、終了、インポート済み)、戦争期間への攻撃の自動割り当て、戦争の合計値とメンバー統計のサマリーテーブル、JSON APIエンドポイント、React製ダッシュボードが含まれます。 使用技術: Cloudflare Workers、D1、Wrangler、TypeScript、Torn API v2。 プロジェクト構造はモジュラーで、取り込み、戦争、レポート、サマリー、敵対ファクションのスカウティング、認証、SQLヘルパー、定数、型、ユーティリティ用のファイルが用意されています。マイグレーションでは、攻撃、戦争、同期状態、サマリー、メンバー統計、敵対/自ファクションのメンバー、アクティビティヒートマップ、管理ユーザー、認証セッション用のテーブルが段階的に追加されます。 設定には、`DB`という名前のD1バインディング、シークレット`TORN_API_KEY`が必要で、BSP APIとFFScouter API用のシークレットはオプションです。共有シークレット`MONITOR_TICKET_SECRET`は、敵対ファクションの病院モニター用のWebSocketチケットに署名するために使用されます。自ファクションのIDは`src/constants.ts`で設定します。 データベースのマイグレーションは、Wranglerを使用してローカルまたはリモートで実行できます。主なテーブルはREADMEに記載されています。 APIエンドポイントには、ヘルスチェック、手動取り込み、統計の再構築、攻撃一覧、戦争の作成/インポート/終了、戦争サマリーの取得、敵対ファクションのスカウティング、スカウティング比較、アクティビティヒートマップ、チェーンボーナス、メンバーのリスペクト再計算が含まれます。認証にはTornのキーを使用し、ファクションメンバーに管理アクセスが付与されます。オプションで、ファクションアクセス権を持つメンバーを自動的に管理者として追加することもできます。 Discordのスラッシュコマンド`/war me`は、実行者の攻撃パフォーマンスと獲得したリスペクトを非公開で表示します。戦争ごと・メンバーごとに30秒のクールダウンがあります。 定期的な取り込みはcronにより毎分実行され、戦争の作成/アクティブ化、攻撃データの取得、サマリーの更新、スコアの追跡、敵対ファクションのスカウティングを処理します。15分ごとのメンテナンス実行では、アクティビティのサンプリング、蘇生可能ステータスの更新、不足しているレポートの取得、統計推定の再試行を行います。 開発手順には、インストール、チェック、ローカル開発、デプロイに関する説明が含まれます。`dashboard/`にあるReact製ダッシュボードは、ビルド設定とAPIのベースURL用の環境変数を使用してCloudflare Pages経由でデプロイされます。 プロジェクトが進化する過程にあるため、管理モデルは意図的に軽量な設計となっています。