diff options
| author | yyamashita <yyamashita@mosquit.one> | 2026-05-14 23:32:46 +0900 |
|---|---|---|
| committer | yyamashita <yyamashita@mosquit.one> | 2026-05-14 23:32:46 +0900 |
| commit | e5b28455523a371cda2e9173b445110b5dfbea24 (patch) | |
| tree | a381cafbdceef8e2795bbad3f7e46c16e8e3f5ff /.claude/skills/import-golive-events.md | |
| parent | e9e576abd9d6c6030aa4bb290e869890831488ad (diff) | |
Add Claude Code skills for golive band registration
- register-band: Web検索でSNS/メンバー情報を収集し、本番API経由でバンドを登録する
- import-golive-events: golive APIからイベント出演者を一括取得し register-band で登録する
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to '.claude/skills/import-golive-events.md')
| -rw-r--r-- | .claude/skills/import-golive-events.md | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/.claude/skills/import-golive-events.md b/.claude/skills/import-golive-events.md new file mode 100644 index 0000000..ec03452 --- /dev/null +++ b/.claude/skills/import-golive-events.md @@ -0,0 +1,90 @@ +--- +description: golive.yyamashita.com からイベント情報を取得し、出演バンドを whoisband に一括登録する +--- + +# goliveイベント出演者インポートスキル + +golive の API からイベントを取得し、出演バンドをまとめて whoisband に登録する。 + +## 使い方 + +``` +/import-golive-events +``` + +オプション引数: +- 日付範囲: `/import-golive-events 2026-05-14 2026-06-14` +- バンド名絞り込み: `/import-golive-events keyword=渋谷` + +## 手順 + +### Step 1: golive APIからイベント取得 + +```bash +curl -s -H "X-Crawler-Access: f9a3c1e847b2d056" \ + "https://golive.yyamashita.com/api/events?limit=100&date_from=$(date +%Y-%m-%d)" \ + | python3 -c " +import json, sys, re + +data = json.load(sys.stdin) +events = data['events'] + +# artistフィールドから出演者名を抽出(/ または , で区切り) +bands = set() +for e in events: + artist = e.get('artist') or '' + # スラッシュ・読点・コンマで分割 + parts = re.split(r'[//、,,]', artist) + for p in parts: + name = p.strip() + if name: + bands.add(name) + +for b in sorted(bands): + print(b) +" +``` + +引数で日付が指定されていれば `date_from` / `date_to` に使う。複数ページある場合は `offset` を増やして繰り返す。 + +### Step 2: 既登録バンドとの差分を計算 + +```bash +curl -s "https://whoisband.yyamashita.com/api/bands" \ + | python3 -c "import json,sys; [print(b['name']) for b in json.load(sys.stdin)]" +``` + +Step1 で得たバンド名リストと照合し、**未登録のバンドのみ**を対象リストとする。 + +### Step 3: 各バンドを順番に登録 + +対象リストの各バンドについて `/register-band` スキルを実行する: + +- 1バンドずつ順番に処理する(並行実行しない) +- 登録成功・スキップ・エラーを記録していく +- エラーが出ても次のバンドへ進む(中断しない) + +### Step 4: 登録結果サマリを表示 + +``` +=== goliveイベント出演者 登録完了 === +取得イベント数: XX件 +抽出バンド数: XX件 +登録済みスキップ: XX件 +新規登録: XX件 +エラー: XX件 + +新規登録バンド: + - バンド名 → https://whoisband.yyamashita.com/bands/of/{id} + - ... + +エラー: + - バンド名: エラー内容 +``` + +## 注意事項 + +- `artist` フィールドが null のイベントはスキップする +- バンド名が1文字以下、または明らかにバンド名でない文字列(「他」「ゲスト」「TBA」など)はスキップする +- 同一バンドが複数イベントに出演していても重複登録しない(Step2で除外) +- ページネーション: golive APIは1回最大100件。イベント数が多い場合は `offset=100`, `offset=200` で繰り返す |
