0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

過去のアドベントカレンダーの記事一覧をJSONに変換して取得する。

Posted at

概要

今年も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の過去記事への一覧リンクを作成するという応用もできそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?