ツナワタリマイライフ

日常ネタから技術ネタ、音楽ネタまで何でも書きます。

atomutilで全エントリーのタイトルとカテゴリを取得する

はじめに

前回、atomuitlを使ってみた。

take-she12.hatenablog.com

今回は軽いその応用で、記事のタイトルをカテゴリを取得した。

というのも、好き勝手書いているのでカテゴリは増え放題なんですね、それを定期的に振り返るために一覧を出したかったわけです。

書いたスクリプト

# coding: UTF-8

require 'atomutil'

USERNAME = 'take_she12'
PASSWORD = 'APIキー'

POST_URI = "https://blog.hatena.ne.jp/take_she12/take-she12.hatenablog.com/atom/entry"

auth = Atompub::Auth::Wsse.new :username => USERNAME, :password => PASSWORD
client = Atompub::Client.new :auth => auth

feed = client.get_feed(POST_URI);
out_fp = File.open("output.txt", "w")

while feed != nil do
  entry = feed.entries
  entry.each{|content|
    p content.title #debug
    
    cate = []
    content.categories.each do |category|
      p category.term #debug
      cate << category.term
    end

    out_fp.printf("title: %s, category: %s\n", content.title, cate)
  }
   
  if feed.next_link == nil then
    break
  else
    feed = client.get_feed(feed.next_link);
  end
end

out_fp.close

出力されるファイルの中身はこんな感じ。

[take@tk2-207-13166 script]$ head output.txt 
title: 技術者としてお金を稼ぐのか、ビジネスマンとしてお金を稼ぐのか, category: ["ソフトウェア開発", "ビジネス"]
title: 自信なんて持つ必要ない, category: ["考え方"]
title: 英語でプログラミング言語を学ぶ「JavaScript: The Good PartsObject編, category: ["ソフトウェア開発", "ソフトウェア開発-JavaScript"]
title: 小銭貯金ソリューション、ついに計測完了した話, category: ["生活"]
title: 「一行バカ売れ」から考えるブログや書籍のタイトル付け, category: ["", "ブログ"]
title: はてなブログのAPIをatomutilを使って全記事のタイトルと本文を取得する, category: ["ソフトウェア開発", "ソフトウェア開発-Ruby", "ソフトウェア開発-シェルスクリプト", "ブログ"]
title: 「脳が認める勉強法」から考える、自分にとってベストの勉強法, category: ["", "教育"]
title: 日報をgitlabで管理すると結構いいよ, category: ["ソフトウェア開発", "ソフトウェア開発-備忘録"]
title: ブログの記事ネタリストをtoodledoで管理する, category: ["ブログ"]
title: node.jsでhello,worldする, category: ["ソフトウェア開発", "ソフトウェア開発-node.js"]

カンマ区切りにしたんで、csvチックに読み込めるかなと。titleとかcategoryって文字はなくてもいいんですけど。これで見直しができますね。

参考

前回の記事でも書きましたがほぼほぼこの記事のままです。

msyksphinz.hatenablog.com

あとはatomutilの作者さんの記事とrdocを見ました。

d.hatena.ne.jp

atomutil-0.0.9 Documentation

readmeに代表的な使い方は書いてあったので、categoryの中身とってくるのもできました。ありがとうございます。

おわりに

しかしカテゴリ整理するとなるとまた1つ1つ変更しないといけないのこれから記事が増えるごとにしんどくなるよね。。。どうしたものか。自動化しようにもできないしなぁ。。。まぁリストが出来たおかげで変更するところだけ変更すればいいのでまだ楽か。やったぜ。