会社でもesaを使っているのですが、一部のカテゴリにある記事にざっと目を通したいことがありました。(何かを探すというより全体を見ておきたいという用途です) が、そのカテゴリに割と記事があったため、esaをブラウザで開いて1個記事を開いて読んだら一覧に戻って…というのを繰り返すのが大変そうだしミスって同じ記事を2回開いたりしそう…もっとらくにやりたい…。
ということで、markdownの記事を端末のページャで読めて、読み終わったら次の記事を出してくれるようなスクリプトを作りました。htmlで見たい場合は、markdownを読み終わったあとにブラウザで今読んだ記事を開くか聞かれるので、それに y
で答えればブラウザで開きます( open ${url}
でブラウザを開いているのでmac以外だとエラーが出るかもしれない)
esaのAPIをRubyから叩いています。
動作の流れ
- コマンドラインから読みたいカテゴリと読みたい最古の日付を指定して実行
- APIを叩くのに必要なトークンやチーム名は
.env
ファイルに書いておきます
- APIを叩くのに必要なトークンやチーム名は
- APIで指定したカテゴリから20件を取得する
- 20件のうち1つ目の記事がページャで開かれる
- コメントがある場合はそれも表示される
- ページャを閉じるとブラウザで開くか聞かれるので答える(
y
以外の入力や未入力でEnterを押すと開かない) - 次の記事が表示される
- 20件表示し終わると、次の20件をAPIで取得し繰り返す
- 次の20件がない場合は終了する
ソースコードは↓になります。(普通にGitHubでリポジトリ作ろうかと思ったけど書き捨てに近いのでgistにした)
https://gist.github.com/yoshihara/0da1862cd5f49b78530958d09bf0a52f
実行は次のように行います。事前にrubyとbundlerのインストールが必須です。
$ bundle install
$ bundle exec ./makimono-esa.rb --category="hoge/fuga/" --start=20180701
作ってみて
ひたすらページャ操作とEnter(たまに y
)でどんどん記事が確認できたので便利でした。もともとmarkdownを見慣れてるのもあってmarkdownで記事を見るのには違和感はありませんでしたが、個人差があるかもです。あとhtmlにすると問題ないけどmarkdown的には読みにくい記事があってもしんどそうです(スペースが謎に多いとか)
あと画像が多いページだとmarkdownで読むのは厳しいですが、そういうときにはブラウザで開いたのを読んでまた戻ればいけそうです(今回はほぼ必要なかった)また、後でしっかり読みたい場合にもブラウザで開けるのは便利かなあと思いました。
あと連綿と記事が出てくるイメージだったので makimono-esa
という名前にしたのですが、実際動かしてみるとコレジャナイ感がすごかったので、最初に名前つけるのは難しいなと思いました。
もし用事があったら使ってみてください。