概要
今年もAdvent Calendarの季節が近づいてきました。
毎年、興味のあるトピックのAdvent Calendarにちょいちょい参加させてもらっているのですが、時々「私が投稿しようとしている記事は過去に投稿されている内容とネタが被っているのでは...?」と考えてしまうことがあります。
そこで今回は、過去のアドベントカレンダーの記事一覧を取得するスクリプトを作成してみました。
アドベントカレンダーの記事一覧取得
スクリプトは以下のGistに置いてあります。
RubyがインストールされているUNIX系OSの環境であれば、以下の手順で実行できます。
$ curl -s -OL https://gist.githubusercontent.com/furandon-pig/f912bac44097fbcde2c9d86cfff53342/raw/6ca9e288db2d4a421eff65990bbf023f25185682/advcal_list.rb
$ ruby advcal_list.rb -h
advcal_list.rb [--year <YYYY>] -name <CALENDAR_NAME>
指定可能オプション:
-y <YYYY>, --year <YYYY>
...アドベントカレンダーの年を指定します。
-n <CALENDAR_NAME>, --name <CALENDAR_NAME>
...アドベントカレンダーの名前を指定します。
-h, --help
...ヘルプを表示します。
$
$ ruby advcal_list.rb -n netbsd | jq .
取得した記事一覧はJSONフォーマットに整形して出力されます。
{
"url": "https://qiita.com/advent-calendar/2018/netbsd",
"list": [
{
"date": "12 / 1",
"username": "furandon_pig",
"title": "NetBSD上に最小限のデスクトップ環境を用意する+VNCでアクセスできるようにする",
"url": "https://qiita.com/furandon_pig/items/2730cc6c370ae0f212f1"
},
...
]
}
必要に応じてjqコマンド等で出力を加工できます。
$ ruby advcal_list.rb -n netbsd | jq '.list[] | .date,.username,.title' | paste - - -
"12 / 1" "furandon_pig" "NetBSD上に最小限のデスクトップ環境を用意する+VNCでアクセスできるようにする"
"12 / 2" "furandon_pig" "NetBSDでUSBメモリをフォーマットしてみる"
"12 / 3" "furandon_pig" "NetBSDのカーネルモジュールサンプルを試してみる"
まとめ
Advent Calendarのネタが被らないようにするため、過去の記事一覧を取得するスクリプトを作成してみました。このスクリプトを使用して興味のあるAdvent Calendarの過去記事への一覧リンクを作成するという応用もできそうです。