コマンドラインツール(cli.py)
すべての機能は cli.py から操作できます。インストール後(pip install -e .)は、同等の mysekai コマンドも使用できます。コマンドは成功時に終了コード 0、エラー時に 1 を返します(エラーメッセージは stderr に出力されます)。
bash
python cli.py --help # サブコマンド一覧
python cli.py <コマンド> --help # 各サブコマンドの引数を確認generate —— セーブデータを復号してマップを生成
bash
python cli.py generate <mysekai_bin><mysekai_bin>:暗号化セーブデータのパス(.bin)、必須- フロー:AES-128-CBC 復号 → msgpack 解析 → ドロップ座標の抽出 → 4 枚のマップ描画(
site_5.png~site_8.png)→rare_resources.txtの出力 data/latest/に出力し、最後に実際のパスを表示します- 前提条件:
.envにAES_KEY/AES_IVが設定されていること。セーブデータにドロップポイントが 1 つもない場合はエラーで終了します
notify —— マップと統計をプッシュ
bash
python cli.py notify <output_dir> [task_id]<output_dir>:site_*.pngとrare_resources.txtを含むディレクトリ(通常はdata/latest/)[task_id]:任意、アップロードタスク ID、デフォルトはunknown。data/raw_mysekai/からプレイヤー ID を逆引きするために使用します:mysekai_<プレイヤーID>_<task_id>.binを優先的にマッチさせ、一致しない場合は raw_mysekai 内の最新セーブデータを使用します- Telegram と Bark のどちらにプッシュするかは
config/push_map.jsonのルーティングで決まります(未設定のプレイヤーはデフォルトで Telegram)。詳細はプレイヤープッシュルーティングを参照
server —— アップロードサービスを起動(分割アップロード + Reqable レポートサーバー)
bash
python cli.py server [--host 0.0.0.0] [--port 9478]- FastAPI サービスを起動します。クライアントは
POST /uploadMySekaiへ暗号化セーブデータをアップロード(単一 POST または分割。API の詳細はアップロードAPIを参照)、Reqable は HAR セッションを内蔵レポートエンドポイントへ報告できます(Reqable レポートサーバーを参照) - 全チャンク到着後、自動で完了します:セーブデータの結合 → マップ生成 →
data/archive/by-id/<user_id>/<タイムスタンプ>/へのアーカイブ → プレイヤールーティングに従った通知のプッシュ。手動介入は不要 - デフォルトでは
9478ポートをリッスンします。公開ネットワークにデプロイする場合は、リバースプロキシ経由で HTTPS として公開することを推奨します。クライアントスクリプトにハードコードされたアップロード URL(ポート含む)は、実際のデプロイ構成と一致させる必要があります
典型的な手動フロー
bash
python cli.py generate mysekai_xxx.bin # 1. data/latest/ にマップを生成
python cli.py notify data/latest <task_id> # 2. プッシュ(task_id にはアップロード ID を入力、例:chfto53c3)