乃木坂46/欅坂46のCLIツールを作ってみました。
- tzmfreedom/nogi: Nogizaka 46 Command Line Interface
- tzmfreedom/keyaki: Keyakizaka 46 Command Line Interface
使い方
以下、nogiコマンドの説明になりますが、keyakiコマンドも同様の方法で利用可能です。macOSユーザの場合はhomebrewでインストール可能です。
$ brew tap tzmfreedom/nogi
$ brew install nogi
WindowやLinuxユーザの場合はReleaseページからバイナリをダウンロードしてExecutableなPathに設置すればOKです。
機能としてはメンバー一覧表示と曲名一覧表示のみで、それぞれTSV区切りでデータを出力します。
$ nogi members # メンバー一覧表示
$ nogi songs # 曲名一覧表示
UNIX哲学の「1つのことをうまくやる」に則り、単機能にしたため、フィルタリングしたい場合はgrep/awk/perl/sedを使ってください。
例えば、まいやんの情報取得エイリアスはこんな感じで↓
alias maiyan='nogi members | grep "白石 麻衣"'
実装について
- 実装言語は、メンバーを応援する人全員に提供したかったのでマルチプラットフォーム、シングルバイナリにビルドできるgolangを採用。
- CLIフレームワークはurfave/cliを採用。
- 基本的にgo-bindataを使ってデータファイル(TOML形式)を埋め込んで表示しているだけ。
- データ更新の間隔が1ヶ月以上なので毎回スクレイピングするのはサーバに負荷かける上に、ネットワークレイテンシもあって非効率なため、データ更新作業(=PR)があることを覚悟した上でCLI自体に埋め込むようにした。
- データファイルの元データはgoqueryを使ってスクレイピングして取得: nogi/create_setting.go
- パッケージ管理はglideで。