MT形式のエクスポートファイルをパースして画像を保存するRubyスクリプト

嫁ブログをブログ人からココログフリーに移行したのだが、
ブログ人で長年アップしてきた画像が無くなってしまうのが嫌でプログラムした。
MT形式のエクスポートファイルを元に画像(jpeg)のURLを抜き出して
画像が保存されているディレクトリ構成も意識してダウンロードする。
動かしたのはブログ人でエクスポートしたファイルだけだが
他サービスで出力したファイルでも動くと思う。
jpegだけ対象なのは嫁がjpegしか使わないから。
それ以外の画像ファイルに対応するなら正規表現をちょろっと書き換えればよい。

#!/usr/local/bin/ruby
require "FileUtils"
require "open-uri"

puts "start"
filename = "/usr/local/hoge/post.txt" # MT形式のエクスポートファイルのパス。自分の環境に合わせる。
basedir = "/usr/local/hoge/photo/" # 画像の出力先のベースとなるディレクトリ。自分の環境に合わせる。
open(filename) do |file|
  while l = file.gets
    l.scan(/"(http:\/\/foo.blog.ocn.ne.jp\/foobar_blog\/\S*.JPG)"/i).flatten.each do |url| # 自分の環境に合わせる。
      dir = url.slice(38,url.rindex("/")-37) #index以降のディレクトのパスを取得。マジックナンバーがきもい。手抜き。自分の環境に合わせる。
      if dir
        dir = basedir + dir
        FileUtils.mkdir_p(dir) unless File.exist?(dir)
      else
        dir = basedir
      end
      puts url
      filename = File.basename(url)
      open(dir + filename, "wb") do |out|
        open(url) do |jpg|
          out.write(jpg.read)
        end
      end
    end
  end
end
puts "end"