ヒーローズビンゴ参加の為に、ヒーローズリーグの作品を見ていて不便に思ったことは無いですか? Protopedia のイベントページ毎の作品一覧は、作品更新日が新しい順に並んでしまう事です。
Protopedia のページから見ていて時間がたつなどしてリロードされると、作品が更新されていて順番が入れ替わり、どこまで見た作品かが判らなくなる…
そんな時 URL とタイトルのリストがあれば、上から順番に評価していけ、しかもそれが表になっていたら自由に評価点の列を追加して評価していけるのでは? といつも思っていました。
スポンサーや等評価をする人にはリストを配っているケースもあるようですが、一般のただの参加者には配られていません。
Protopedia API を使えばそんなことは余裕で出来てしまうという事はわかってはいたのですが、なかなか試せませんでした。誰か得意な人が作ってくれるのでは?と待っていてもなかなか出て来ません。
今年のヒーローズリーグは 私は Protopedia 作品をほとんど見れていません。 ヒーローズビンゴを楽しむためには必須なのですが…
そんな中、地雷踏み体質でいきなり Protopedia アクセス不能に陥って、この土日全くアクセスできない状態になり正直焦りました。 キャッシュをクリアするといいよという話を聞いた時には土日は過ぎていて…
「これは効率よく見ていくしかない」となりました。 という訳で作りました。
こんな記事書いている暇あったら見ていったら?というツッコみは無しでお願いします!
”面倒くさいから手順じゃなくデータそのものを公開して欲しい” という声が聞こえてきそうです。 SpreadSheet のデータを公開してもいいのですが、データそのものを掲載してもいいかどうかは、グレーゾーンですのでやり方だけを公開しました。 してもいいよとProtopedia運営が言ってくれたら公開するかも?
”いいね" や "コメント"くれればうれしいかな!
以上です。
とりあえず今は構成図描く時間無いのと、あまり構成図が必要なほど複雑ではないので箇条書きに書きます。 (時間できたら書くかも…)
Protopediaの API を使用するためには、Token が必須なので以下の手順で取得します。
Protopedia に登録済みでログインしているのを前提です。
① 右上の自分のアカウントアイコンをクリック
② その下の [設定] を押す
③ 左側の [アプリケーション] を押す
④ [トークンを生成] を押す
⑤ 生成されたトークンはこの場所に表示されるので、コピーして使用します。
記事内にうっかり載せて晒してしまわない様にトークンは環境変数に設定しました。 毎日使う様な物ではないので一次的な環境変数として設定しましたが、使用頻度が高い人は環境変数を保存する方法を調べてください。(難しくはないのですが環境などにより方法が複数あり面倒なので、ここでは割愛します)
下記 "XXXXXXXXXXXXXXX" の所に "Protopedia の トークン を取得" の所で取得したトークンを入れます。
[Win] + [R] キーを押すと ファイル名を指定して実行" がでるので
CMD
と打ちます。 Windows10 で WindowsUpdate で最新になっていたら、curl は入っていると思いますが、念のためインストールされているかバージョンを表示して確認します。 入っていない場合は最新版へのWindowsの更新が必要ですが、その方法は割愛します。
curl --version
出る事を確認して以下のコマンドで環境変数にトークンを設定しておきます。
SET PROTOPEDIA_TOKEN=XXXXXXXXXXXXXXX
echo %PROTOPEDIA_TOKEN%
等と打つと、ちゃんと設定出来ているかを確認できます。
SSH 等 CUI で起動している場合はそのまま、GUIの場合は Terminal または 端末 を開いてください。 同じく curl は入っていると思いますが、念のためインストールされているかバージョンを表示して確認します。 入っていない場合は apt 等のパッケージマネージャーを使って curl のインストールが必要ですが、その方法は割愛します。(入っていないことはほぼないかと・・・)
curl --version
出る事を確認して以下のコマンドで環境変数にトークンを設定しておきます。
PROTOPEDIA_TOKEN=XXXXXXXXXXXXXXX
echo $PROTOPEDIA_TOKEN
等と打つと、ちゃんと設定出来ているかを確認できます。
APIの "eventId=" で指定するイベントIDを調べます。
protopedia のイベント一覧ページ から取得したいイベントのバナーをクリックすると出てくるページのURL の最後のスラッシュ以降についている数値部分なのですが、
これが数値になっていないものがあります。例えばヒーローズリーグ2024の場合バナーをクリックすると、
https://protopedia.net/event/hl2024
と出てきますが "hl2024" が数値ではありません。
実は数値の別名が付いているようで実際は 106 になるようです。
https://protopedia.net/event/106
どちらでも表示されるページは変りません。
その番号をどうやって調べるかというと、前後のイベントから類推して数値を指定して url を叩いてみるしかない様です。 ヒーローズリーグの場合直前に作成されたイベント 「実際の病院を会場にしたハッカソン!第3回メディカルハッカソン by ものづくり医療センター」をクリックすると https://protopedia.net/event/105 という URLが取得できますが、 それに1を足した 106 を入力してみてそれが違うなら 107 を入力してみて、というのを繰り返して探すしかなさそうです。
今回は HeroesLeague 2024 の場合 (eventID=106) で作成していますが、他の物にしたい場合はこの値を変更して下さい。 以下が API の呼び出しコマンドですが、環境変数の指定の仕方が Windowsだけ特殊なので環境別に書いておきます。
curl -o ProtopediaList_HeroesLeague2024.txt --include --header "Accept: application/json" --header "Authorization: Bearer %PROTOPEDIA_TOKEN%" "https://protopedia.net/v2/api/prototype/list/tsv?eventId=106&limit=1000&offset=0"
curl -o ProtopediaList_HeroesLeague2024.txt --include --header "Accept: application/json" --header "Authorization: Bearer $PROTOPEDIA_TOKEN" "https://protopedia.net/v2/api/prototype/list/tsv?eventId=106&limit=1000&offset=0"
-o の後ろの、"ProtopediaList_HeroesLeague2024.txt" が出力ファイル名です。実行するとこれが出来上がっていれば成功です。また、ファイル名を変更したい場合はこれを修正します。
HTTP 応答のヘッダーが付属していますので 削除します。 CURL オプションで消せると思ったのですが、消せませんでしたので手動で消します。 (方法はあるのかもしれませんが、未調査です。あまり詳しくなくてすみません。)
作品番号だけでは不便なので、 番号を URL リンク化します。 作品の URL は、Prototype の URL の後ろに作品IDが付いた以下の形になります。
https://protopedia.net/prototype/<作品ID>
これを数式化して埋め込んでしまいましょう。
テキストエディター※ にて正規表現で以下の様に、置き換え前と置き換え後を指定して
置き換え前:"^([0-9]+)\t"
置き換え後:"=HYPERLINK("https://protopedia.net/prototype/$1","$1")\t"
[全置き換え]を実行します。
図は VSCode の場合です。
※ テキストエディターは "正規表現" 置き換えに対応している物(VSCode / Sakura Editor / 秀丸エディター等 ) なら何でも OKですが、具体的な操作方法は割愛します。
上で加工済みのテキストをエディターの全選択してコピーし、表計算 (Excel や Spreadsheet 等 ) に貼り付けます。
Excelの場合
Spreadsheet の場合
Excel の場合 Q列(公開日時)の列がなぜか時間しか表示されません。(バージョンによるのかもしれませんが)
Q列全体を選択し右クリックから [ セルの書式設定] を選択し、[ユーザー定義] で
"yyyy/m/d h:mm:ss"
を設定します。
評価に不要な列は非表示にしてしまいましょう。フィルターやソートしたい項目を残すといいかと思います。 下の図は一例です。
枠線を付けたり、タイトルに色を付けたり、文字の大きさや列を修正したり、フィルターを設定したりして使いやすく修正するといいかと思います。
評価用の列を追加します。 ここでは、ヒーローズリーグの公式ページにあるこれ!
で作ってみましょう。 評価列の点数を合計をする列も追加しておくと使いやすいかなと思います。
こんな感じですかね。
実際はこんなに評価項目が多いと大変です。独自の評価基準に合わせて絞った方がいいと思います。
Excel で作ったとしても、GoogleDrive に入れておいて SpreadSheet で開くと、ネット越しでどこでも見れると思うので便利です。 出先でもチェックできるので便利かも
評価列に採点を入力していきます。5点満点でも10点満点でも自分の付けやすい物でいいと思います。 また、合計式の所で評価基準によって重みづけをすると、自分の優先する項目がより評価されるようになるかと思います。
あとは、自分の評価基準に合わせてソートして有線順序作るなり、開発素材や TAG でフィルターするなり、自由にしてください。 但し、優先度をつけるのはともかくあまりフィルターなどせず、全作品見て欲しい所ではあります。
これ重要です。せっかく苦労して評価したので「この作品は選ばれるのでは」という作品を選んで、ビンゴで豪華(⁉)賞品を当てちゃいましょう。皆の評価にもつながるので是非!