--- 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` で繰り返す