近日发现用零碎时间用 iPad 看看书还是不错的,就想把电脑中的来路不明的 epub 全部转移到 iPad 中,但是,电脑中的 epub 全部被 iBooks 解压成目录了,怎么办?
随手写了个小脚本,提取书名,并将已解压了的文件重新打包,几十本书几分钟就全部重新回来了,会编程,就是这么屌!
#!/usr/bin/env ruby
require 'nokogiri'
ibooks_home = '/Users/xiehuajian/Library/Containers/com.apple.BKAgentService/Data/Documents/iBooks/Books/'
Dir.foreach(ibooks_home) do |dir|
if File.extname(dir) == ".epub"
dir = ibooks_home + dir
File.open(dir + "/iTunesMetadata.plist") do |f|
doc = Nokogiri::XML(f)
book_name = doc.xpath('//key[text()="itemName"]/following::string').first.text
Dir.chdir(dir)
print "." if %x(zip -r "#{book_name}.epub" .) && %x(mv "#{book_name}.epub" ~/Downloads/)
end
end
end
puts "Done!"