こんにちは、.ごっちです。
—
表題の通り、macOSのterminalなどで動くコマンドを作っています。きっかけはこれ↓
pockeさんがSplatoon2のルールやステージ情報を取得するvimのプラグインを作っていて、コマンドラインでできないものかと思ってはじめました。
つかったもの
Go言語を使うとそういったものが使えることを聞いたことがあるので、採用です。Go言語やったことないけど。
このライブラリを使います。
—
さすがに公式のAPIは取得できないので、非公式のものを使用します。
完成物
出来上がったものは↓です。
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/