尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Poker Hand Input Tool at MTT
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗ライブMTT(トーナメント)のハンドを iPhone で記録し、GTO Wizard の Hand History Analyzer が読める PokerStars 形式で書き出す PWA(Webアプリ)です。
ハンド詳細画面には、HHに載せられない ICM/バウンティ用メモ(残り人数・残り%・各スタックのBB換算・賞金構造)があり、GTO Wizard AI(ICM/PKOソルバー)に手入力する際にコピーできます。
| 項目 | 対応 |
|---|---|
| 形式 | PokerStars トーナメント形式、英語のみ |
| Hand # / Tournament # | 数値のみ(時刻+乱数で一意)。再アップロードは GTO Wizard 側で重複として無視される |
| 座席 | 1〜9(ボタンが Seat 10 だと認識されないため、10-max は非対応) |
| アンティ | 1人1行の posts the ante。BBアンティは人数で按分(端数はBBに)して出力 |
| ヒーロー | Dealt to <名前> [..] はヒーローのみ。相手のカードはショウダウンでのみ |
| PKO | ヘッダーを $賞金分+$バウンティ+$手数料 USD、座席行に , $X bounty |
| ベットサイズ | 実額を記録(GTO Wizard が最寄りの解析済みサイズに丸める) |
| 返還ベット | Uncalled bet (N) returned to ... を出力し、Total pot は回収額の合計 |
| 通貨 | ヘッダーの通貨は常に $/USD 表記(金額は入力値のまま)。GTO Wizard は検証しない |
| 9-max | GTO Wizard は 8-max ツリーで解析するため、UTG がフォールドしたハンドのみ対象 |
| マルチウェイ | ポストフロップ3人以上は GTO Wizard の解析対象外(ハンド一覧に ⚠ 表示) |
npm install
npm run dev # http://localhost:3000
npx vitest run # エンジン・エクスポーター・UIフローのテスト
npm run build
Node.js は ZIP 版(C:\Users\nobuz\tools\nodejs)を PATH に通して使います。
主要ファイル:
src/lib/engine.ts … ベッティングエンジン(手番、ブラインド/アンティ、返還ベット、サイドポット)src/lib/exporter.ts … PokerStars 形式テキスト生成、ICMメモsrc/lib/handEval.ts … 7枚役判定(ショウダウン自動判定・役名)src/lib/store.ts … localStorage ストア / src/lib/sync.ts … Supabase 同期src/app/t/[id]/setup record hand/[hid] … ハンド設定・記録・詳細画面git add -A
git commit -m "Initial commit"
# GitHub で空のリポジトリ poker-mtt-tracker を作成してから
git remote add origin https://github.com/<ユーザー名>/poker-mtt-tracker.git
git push -u origin main
https://xxx.vercel.app)を iPhone の Safari で開き、共有 → ホーム画面に追加この時点では ローカル保存のみ で全機能が使えます。
Supabase ダッシュボード → New project(リージョンは Tokyo 推奨)
SQL Editor で supabase/schema.sql の内容を貼り付けて実行(テーブル2つ + RLS)
Authentication → Providers → Email を有効化。自分専用なら Confirm email をオフ にするとメール確認なしで登録できます
Project Settings → API から Project URL と anon public キーをコピー
Vercel → プロジェクト → Settings → Environment Variables に追加して Redeploy
| Name | Value |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | https://xxxx.supabase.co |
NEXT_PUBLIC_SUPABASE_ANON_KEY | eyJ... |
アプリの右上「ローカル」→ アカウント画面でメール+パスワードを 新規登録 → 以降は起動時に自動同期
ローカル開発で同期も試す場合は .env.example を .env.local にコピーして値を入れてください。
Supabase Free プランは「直近1週間の DB 活動が不十分」だとプロジェクトを自動で一時停止します(公式の目安は「1日に数回のユーザーリクエスト」)。停止すると同期だけが失敗し(ローカル記録・エクスポートは使える)、ダッシュボードの Restore project で復帰できます。
これを防ぐため /api/keepalive(src/app/api/keepalive/route.ts)が両テーブルに複数クエリを投げ、2系統のスケジューラから呼ばれます:
| 経路 | 設定ファイル | 頻度 | 確認場所 |
|---|---|---|---|
| Vercel Cron | vercel.json | 毎日 UTC 3:00(±59分) | Vercel → プロジェクト → Settings → Cron Jobs |
| GitHub Actions | .github/workflows/keepalive.yml | 1日4回(UTC 0/6/12/18 時台) | GitHub → リポジトリ → Actions → Supabase keepalive |
CRON_SECRET を設定する場合は、同じ値を GitHub の Settings → Secrets and variables → Actions に CRON_SECRET として登録してください(未設定なら不要)。https://poker-mtt-tracker.vercel.app/api/keepalive を何度か開くか、Supabase ダッシュボードでプロジェクトを開くことです。BB: posts the ante N)を正しく解釈するかは未確認のため、按分出力を既定にしています(exportHand の bbAnteMode: 'single' で切替可能)