Diary/2014-5-12
History.plist
Safariの履歴を眺めてみたいな,とか思ったのでメモ
- ファイルは?
~/Library/Safari/Hisotry.plist
- どうやって読む?
バイナリplistなので,rubyで読むには,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
とかいうメソッドを作って変換する必要がある.