MacRubyだとplistがネイティブで扱える
MacではDropBoxに入れるだけで 非OSX環境で扱うケースを考える。
Rubyでやってみる
gem install CFPropertyList
require 'cfpropertylist'
plist = CFPropertyList::List.new(:file => "Bookmarks.plist")
data = CFPropertyList.native_types(plist.value)
ハッシュが出来、その次は配列で、またその中はハッシュみたいな
lista = data['Children']
rl=lista[lista.size-1]['Children']
(0..598).each{|i|
puts rl[i]['URIDictionary']['title'] + " " + rl[i]['URLString']
}
=> {
"ReadingList"=>{
"DateAdded"=>2013-05-14 08:31:52 +0900,
"DateLastViewed"=>2013-05-15 12:35:32 +0900,
"PreviewText"=>"このページをモバイルデバイスに最適化されたPublickey Smart Edtionで読む JavaScriptのプログラミングスタイルはどうあるべきか?重鎮
Douglas Crockford氏が脳の働きとの関係を語る(後編)。QCon Tokyo 2013 2013年5月1"
},
"ReadingListNonSync"=>{
"ArchiveOnDisk"=>true, "DateLastFetched"=>2013-05-16 07:27:02 +0900, "FetchResult"=>1, "PreviewText"=>"JavaScriptのプログラミングスタイルはどうあるべきか? 重鎮Douglas Crockford氏が脳の働きとの関係を語る(後編)。QCon Tokyo 2013 2013年5月13日 4月23日に都内で開催されたエンジニア向けのイベント「QCon Tokyo 2013」"
},
"Sync"=>{"Key"=>"\"C=3255@U=ca51b725-be75-411a-8340-09c60f38bf27\"",
"ServerID"=>"https://kjw_junichi%40mac.com@p02-bookmarks.icloud.com/95582769/bookmarks/BFEmlLhQQi64yzedNfEOOA/DC1036B1-1C4E-48
ED-80DF-7FF9F0FCD51E.xbel"}, "URIDictionary"=>{"title"=>"JavaScriptのプログラミングスタイルはどうあるべきか? 重鎮Douglas Cr r
ockford氏が脳の働きとの関係を語る(後編)。QCon Tokyo 2013 - Publickey"}, "URLString"=>"http://www.publickey1.jp/blog/13/ja a
vascript_douglas_crockfordqcon_tokyo_2013_1.html", "WebBookmarkType"=>"WebBookmarkTypeLeaf", "WebBookmarkUUID"=>"B6D208F6-E3
05-4149-A215-96419B96C460"}
これが設定されていなければ、未読扱いか?
#!/usr/bin/env ruby
require 'cfpropertylist'
plist = CFPropertyList::List.new(:file => File.expand_path("~/Library/Safari/Bookmarks.plist"))
data = CFPropertyList.native_types(plist.value)
a=data['Children']
b=a[a.size-1]['Children']
puts "<html><body><ul>"
(0..b.size-1).each{|i|
if b[i]['ReadingList']['DateLastViewed']
puts "<li><a href=\""+b[i]['URLString']+"\">" + b[i]['URIDictionary']['title']+"</a></li>"
end
}
puts "</ul></body></html>"
(a[31])['Children'][0]