- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!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
とかいうメソッドを作って変換する必要がある.