Class: ImageDownloader
- Inherits:
-
Object
- Object
- ImageDownloader
- Defined in:
- lib/yamd.rb
Class Method Summary collapse
Instance Method Summary collapse
- #download(manga) ⇒ Object
-
#initialize(base_dir = Dir.pwd) ⇒ ImageDownloader
constructor
A new instance of ImageDownloader.
Constructor Details
#initialize(base_dir = Dir.pwd) ⇒ ImageDownloader
Returns a new instance of ImageDownloader.
90 91 92 |
# File 'lib/yamd.rb', line 90 def initialize(base_dir = Dir.pwd) @base_dir = base_dir end |
Class Method Details
.format_page_name(page, chapter, manga) ⇒ Object
118 119 120 121 122 |
# File 'lib/yamd.rb', line 118 def self.format_page_name(page, chapter, manga) # TODO: usar log10 de chapter.pages.size para determinar padding de zeros page_path = Addressable::URI.parse(page.image_url).path format("%04d", page.number) + File.extname(page_path) end |
Instance Method Details
#download(manga) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/yamd.rb', line 94 def download(manga) manga_dir = Pathname.new(@base_dir).join(manga.name + '/') if manga_dir.exist? p 'Manga dir exists. Skipping each existing chapter. If the script was forced to stop the last downloaded chapter can be incomplete. Remove it to be downloaded again.' else Dir.mkdir(manga_dir.to_s) end manga.chapters.each do | chapter | chapter_dir = manga_dir.join(chapter.name + '/') unless chapter_dir.exist? Dir.mkdir(chapter_dir.to_s) chapter.pages.each do | page | page_name = self.class.format_page_name(page, chapter, manga) page_abs_path = chapter_dir.join(page_name).to_s File.open(page_abs_path, 'wb') do | f | open(page.image_url, 'rb') do | image | f.write(image.read) end end end end # end "unless chapter_dir.exist?" end end |