はてなフォトライフから画像ぶっこ抜き

はてなフォトライフってのは基本的にアップロードを前提としたサービスなので、はてなフォトライフに登録している画像をローカルにバックアップする機能がないのよね。ただ現状個人的にはアップロードは殆どしてなくて、はてなハイクでお絵かきした画像の保存先でしかない。んで、そのお絵かきした絵をローカルに落としたいんだけど、どうしたらよかろうか。って事でrubyスクリプトを書いてみた。

まぁ単純にRSSフィードから画像ファイルのURLを正規表現で抜いているだけですけどね。しかも結構な富豪プログラム。お絵かき画像はサイズがそれほどでもないので、まぁいいか。
後、はてなのサーバにもやさしくように毎回RSSフィードを全ページアクセスしているところを新着分のみを取得できるようにするべきかな。

# Hatenafotolife から画像をぶっこ抜き
require 'open-uri'
require 'uri'
list = []
1.upto(99) do |page|
  doc = open("http://f.hatena.ne.jp/Pink/rss?model=Hatena%20Haiku&page=#{page}"){|f|f.read} # はてなハイクのみ
#  doc = open("http://f.hatena.ne.jp/Pink/rss?page=#{page}"){|f|f.read}                      # 全部
  temp = doc.scan(%r|<hatena:imageurl>(.+?)</hatena:imageurl>|)
  if temp.empty?
    break
  else
    list << temp
  end
end
list.flatten!

list.each do |url|
  uri = URI.parse(url)
  basename = File.basename(uri.path)
  unless FileTest.exist? basename
    File.open(basename, "wb") do |file|
      file.write open(url, "rb"){|f|f.read}
    end
  end
end