Sha256: b8247660c2361a4a34791f2ef6aa4922e4765851e10f6194dd39e5a09ca0edd8

Contents?: true

Size: 977 Bytes

Versions: 28

Compression:

Stored size: 977 Bytes

Contents

require 'pathname'
require 'tmpdir'
require 'epub/parser'

EPUB_URI = URI.parse(ARGV.shift)
DOWNLOAD_DIR = Pathname.new(ARGV.shift || Dir.mktmpdir('epub-parser'))
$stderr.puts <<EOI
Started downloading EPUB contents...
  from: #{EPUB_URI}
  to:   #{DOWNLOAD_DIR}
EOI

# Make it possible to use URI as EPUB file path
EPUB::OCF::PhysicalContainer.adapter = :UnpackedURI

def main
  make_mimetype

  container_xml = 'META-INF/container.xml'
  download container_xml

  epub = EPUB::Parser.parse(EPUB_URI, container_adapter: :UnpackedURI)
  download epub.rootfile_path

  epub.resources.each do |resource|
    download resource.entry_name
  end
  puts DOWNLOAD_DIR
end

def make_mimetype
  $stderr.puts "Making mimetype file..."
  DOWNLOAD_DIR.join('mimetype').write 'application/epub+zip'
end

def download(path)
  path = path.to_s
  src = EPUB_URI + path
  dest = DOWNLOAD_DIR + path
  $stderr.puts "Downloading #{path} ..."
  dest.dirname.mkpath
  dest.write src.read
end

main

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
epub-parser-0.4.8 examples/aggregate-contents-from-web.rb
epub-parser-0.4.7 examples/aggregate-contents-from-web.rb
epub-parser-0.4.6 examples/aggregate-contents-from-web.rb
epub-parser-0.4.5 examples/aggregate-contents-from-web.rb
epub-parser-0.4.4 examples/aggregate-contents-from-web.rb
epub-parser-0.4.3 examples/aggregate-contents-from-web.rb
epub-parser-0.4.2 examples/aggregate-contents-from-web.rb
epub-parser-0.4.1 examples/aggregate-contents-from-web.rb
epub-parser-0.4.0 examples/aggregate-contents-from-web.rb
epub-parser-0.3.9 examples/aggregate-contents-from-web.rb
epub-parser-0.3.8 examples/aggregate-contents-from-web.rb
epub-parser-0.3.7 examples/aggregate-contents-from-web.rb
epub-parser-0.3.6 examples/aggregate-contents-from-web.rb
epub-parser-0.3.5 examples/aggregate-contents-from-web.rb
epub-parser-0.3.4 examples/aggregate-contents-from-web.rb
epub-parser-0.3.3 examples/aggregate-contents-from-web.rb
epub-parser-0.3.2 examples/aggregate-contents-from-web.rb
epub-parser-0.3.1 examples/aggregate-contents-from-web.rb
epub-parser-0.3.0 examples/aggregate-contents-from-web.rb
epub-parser-0.2.9 examples/aggregate-contents-from-web.rb