Skip to content

Instantly share code, notes, and snippets.

@htakeuchi
Created January 7, 2022 04:54
Show Gist options
  • Save htakeuchi/0995db3ac505f82d20296dc0b8b8c112 to your computer and use it in GitHub Desktop.
Save htakeuchi/0995db3ac505f82d20296dc0b8b8c112 to your computer and use it in GitHub Desktop.
Kindle for Macの情報からCSVで蔵書一覧を出力する
require 'rexml/document'
require 'date'
require 'csv'
# Kindle for Mac
KINDLE_XML = "#{ENV['HOME']}/Library/Containers/com.amazon.Kindle/Data/Library/Application Support/Kindle/Cache/KindleSyncMetadataCache.xml"
doc = REXML::Document.new(File.read(KINDLE_XML))
csv = CSV.generate(force_quotes: true) do |csv|
doc.elements.each("//response/add_update_list/meta_data") do |e|
csv << [
e.elements["ASIN"].text,
e.elements["title"].text,
e.elements["authors"].map{|item| item.text}.join('/'),
e.elements["publishers"].map{|item| item.text}.join('/'),
e.elements["publication_date"].text,
e.elements["purchase_date"].text
]
end
end
puts csv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment