def to_xbel(tag = nil)
now = Time.now.gmtime.iso8601
ret = [ "<?xml version='1.0' encoding='utf-8'?>",
"<xbel version='1.0' added='#{now}'>",
" <title>#@user's Delicious Bookmarks</title>" ]
tags = all(tag).inject({}) do |tags, bm|
if bm['tags'] && bm['tags'].size > 0
bm['tags'].sort!
bm['tags'].each { |tag| tags[tag] ||= []; tags[tag] << bm }
else
tags['unsorted'] ||= []
tags['unsorted'] << bm
end
tags
end
tags.keys.sort.each do |tag|
ary = tags[tag]
ret << [
" <folder id='#{tag}' added='#{now}'>",
" <title>#{tag.capitalize}</title>",
ary.sort { |a, b| a['description'] <=> b['description'] }.map do |bm|
href, bm_id = u(bm['href']), "#{tag}-#{bm['hash']}",
time = bm['time'].iso8601
title = h(bm['description'] || '')
desc = h(bm['extended'] || '')
[ " <bookmark href='#{href}' id='#{bm_id}' added='#{time}'>",
" <title>#{title}</title>",
" <desc>#{desc}</desc>",
" </bookmark>" ,
].join("\n")
end.join("\n"),
' </folder>',
].join("\n")
end
ret << '</xbel>'
ret.join("\n")
end