blob: ec03452084323cb70c0fe54243ad1f1d4ed31ece (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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` で繰り返す
|