Method: Mangdown::Manga#download_to

Defined in:
lib/mangdown/manga.rb

#download_to(dir, start = 0, stop = -1,, opts = { force_download: false }) ⇒ Object

rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/mangdown/manga.rb', line 37

def download_to(dir, start = 0, stop = -1, opts = { force_download: false })
  start, stop = validate_indeces!(start, stop)
  setup_download_dir!(dir)
  failed = []
  succeeded = []
  skipped = []

  chapters[start..stop].each do |chapter|
    chapter_result = chapter.download_to(to_path, opts)

    if chapter_result[:failed].any?
      failed << [chapter, chapter_result]
    elsif chapter_result[:succeeded].any?
      succeeded << [chapter, chapter_result]
    elsif chapter_result[:skipped].any?
      skipped << [chapter, chapter_result]
    end

    next unless chapter_result[:failed].any?

    logger.error({
      msg: 'Chapter was not fully downloaded',
      uri: chapter.uri,
      chapter: chapter.name
    }.to_s)
  end

  { failed: failed, succeeded: succeeded, skipped: skipped }
end