FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

FPGA開発日記 カテゴリ別記事インデックスサイトを作りました

まあ誰が利用するという訳でもないんだけど、自分で過去の記事を確認するのが大変なので、Google Sitesを利用してこのブログのカテゴリ毎の記事まとめを作成した。

FPGA開発日記 記事整理インデックス

f:id:msyksphinz:20160909085712p:plain

これ今のところ手動で更新するしか無いんだよな。。。カテゴリと記事の更新があれば、まとめサイトの更新も自動化できそうだけど。そのあたり調べてみよう。 まだカテゴリ毎のサブカテゴリでちゃんと整理出来ていないんだけど、時間をみてやります。

FPGA開発日記 記事整理インデックス

おまけ: はてなブログから記事リンクの一覧を取得する方法

これちょっとハマった。いつも通りruby のatomutilを使ってはてなブログの記事一覧を取得しようと思ったんだけど、良く見るとブログのリンクアドレスが編集用のアドレスになっていた。 確認しようとしたら間違えているのに気がついた。あぶないあぶない。

  entry = feed.entries
  entry.each{|content|
    out_fp.printf("<ul><li><a href=\"%s\">%s</a></li></ul>\n", content.links[1].href, content.title)  # content.links[0]は編集用のアドレス
  }

content.links[0].hrefで取得できるのが以下:

https://blog.hatena.ne.jp/msyksphinz/msyksphinz.hatenablog.com/atom/entry/10328749687182581271

content.links[1].hrefで取得できるのが以下:

http://msyksphinz.hatenablog.com/entry/2016/09/09/020000

ソースコード

#!/usr/bin/env ruby
# -*- encoding: utf-8 -*-

require 'atomutil'

POST_URI = "https://blog.hatena.ne.jp/msyksphinz/msyksphinz.hatenablog.com/atom/entry"

auth = Atompub::Auth::Wsse.new(
  username: 'ユーザ名',
  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|
    out_fp.printf("<ul><li><a href=\"%s\">%s</a></li></ul>\n", content.links[0].href, content.title)
  }

  if feed.next_link == nil then
    break
  else
    feed = client.get_feed(feed.next_link);
  end
end

out_fp.close