!History.plist Safariの履歴を眺めてみたいな,とか思ったのでメモ ::ファイルは? ~/Library/Safari/Hisotry.plist ::どうやって読む? バイナリplistなので,rubyで読むには,[CFPropertyList|https://github.com/ckruse/CFPropertyList]が便利. ::どんな感じ? require 'cfpropertylist' list = CFPropertyList::List.new(:file => str) p list.value.value["WebHistoryDates"].value[0] p list.value.value["WebHistoryDates"].value[0].value[""].value # URL p list.value.value["WebHistoryDates"].value[0].value["title"].value # title p list.value.value["WebHistoryDates"].value[0].value["lastVisitedDate"].value # 最終アクセス時刻 p list.value.value["WebHistoryDates"].value[0].value["visitCount"] p list.value.value["WebHistoryDomains.v2"].value[0] p list.value.value["WebHistoryDomains.v2"].value[0].value[""].value 定義されてない場合(title)はnilで,valueでアクセスできないので注意が必要 ::時刻 lastVisitedDateで取得できるのはNSDateで,これは, 2001-01-01 00:00 GMT からの相対時刻.なので,現在時刻を得るためには, def NSDate2UnixTime(v) Time.at(Time.gm(2001, 1, 1).to_i + v) end とかいうメソッドを作って変換する必要がある.