Splatoon2のステージ情報を取得するコマンドを作っている
2019年01月12日
こんにちは。、.ごっちです。
—
表題の通り、macOS の terminal などで動くコマンドを作っています。きっかけはこれ ↓
完全に便利 pic.twitter.com/2blGmYBLGp
— 🎹 (@p_ck_) January 9, 2019
https://github.com/pocke/ika2.vim
pockeさんが Splatoon2 のルールやステージ情報を取得する vim のプラグインを作っていて、コマンドラインでできないものかと思ってはじめました。
つかったもの
Go 言語を使うとそういったものが使えることを聞いたことがあるので、採用です。Go 言語やったことないけど。
このライブラリを使います。
—
さすがに公式の API は取得できないので、非公式のものを使用します。
完成物
出来上がったものは ↓ です。
https://github.com/YutaGoto/ika2cli
readme の通り、機能としては
- 現在のルールとステージ情報の取得
- 次の時間帯のルールとステージ情報の取得
ができます。(べんりなのでは? 🦑)
所感
最初は Go で書いたこともないこともあって 3–4 日くらいかかると思っていたが、想定よりも時間がかからず一旦作ることができました。
json のパースが Ruby と全然違くてそのへんは苦戦しました。構造体にぶっこんでからやるのことはちょっとめんどい気がしましたが、予め定義したほうがいいと考えると妥当な気はしています。
構造体の定義を便利にしてくれるツールがなければやめていました。
整数値を指定して n 番目の情報や、次回のガチマッチ/リーグマッチのガチホコバトル/ガチエリア/ガチヤグラ/ガチアサリがいつ来るかを取得する option があってもいいと思いました。(pocke さんが作った vim プラグインにはそれがあるのでできるはず..)
非公式 API にはサーモンラン情報を取得するものもあるので、サーモンランの情報も扱ってみたいです。
go のスタイルガイドをすっ飛ばして書いているので、これはきれいなコードなのか怪しい感じがあります。
References
-
pocke/ika2.vim, https://github.com/pocke/ika2.vim
-
urfave/cli, https://github.com/urfave/cli
-
Spla2 API — スプラトゥーン 2 のステージ情報 API, https://spla2.yuu26.com/
-
YutaGoto/ika2cli, https://github.com/YutaGoto/ika2cli
-
JSON-to-Go: Convert JSON to Go instantly, https://mholt.github.io/json-to-go/