# frozen_string_literal: true require 'date' require 'fileutils' require 'nokogiri' require_relative './methods' FileUtils.mkdir_p('mythwalker') BASE = 'https://brandonsanderson.com' links = [ '/warbreaker-prime-mythwalker-prologue/', '/warbreaker-prime-mythwalker-chapter-one/', '/warbreaker-prime-mythwalker-chapter-two/', '/warbreaker-prime-mythwalker-chapter-three/', '/warbreaker-prime-mythwalker-chapter-four/', '/warbreaker-prime-mythwalker-chapter-five/', '/warbreaker-prime-mythwalker-chapter-six/', '/warbreaker-prime-mythwalker-chapter-seven/', '/warbreaker-prime-mythwalker-chapter-eight/', '/warbreaker-prime-mythwalker-chapter-nine/', '/warbreaker-prime-mythwalker-chapter-ten/', '/warbreaker-prime-mythwalker-chapter-eleven/', '/warbreaker-prime-mythwalker-chapter-twelve/', '/warbreaker-prime-mythwalker-chapter-thirteen/', '/warbreaker-prime-mythwalker-chapter-fourteen/', '/warbreaker-prime-mythwalker-chapter-fifteen/', '/warbreaker-prime-mythwalker-chapter-sixteen/', '/warbreaker-prime-mythwalker-chapter-seventeen/', '/warbreaker-prime-mythwalker-chapter-eighteen/', '/warbreaker-prime-mythwalker-chapter-nineteen/', '/warbreaker-prime-mythwalker-chapter-twenty/', '/warbreaker-prime-mythwalker-chapter-twenty-one/', '/warbreaker-prime-mythwalker-chapter-twenty-two/', '/warbreaker-deleted-scenes-mab-the-cook/' ] titles = ['Prologue'] + (1..22).map { |x| "Chapter #{x}" } + ['Deleted Scenes: Mab the Cook'] episode = 1 links.each do |link| url = BASE + link puts "Download #{url}" unless File.exist? "mythwalker/#{episode}.html" `wget --no-clobber "#{url}" --output-document "mythwalker/#{episode}.html" -o /dev/null` end episode += 1 end html = <<~EOT Warbreaker Prime: Mythwalker EOT (1..(links.length)).each do |i| complete_html = Nokogiri::HTML(open("mythwalker/#{i}.html")) page = complete_html.css('.vc_col-sm-7 .wpb_wrapper')[0] html += "

#{titles[i - 1]}

" + page.inner_html end html += '' File.open('books/mythwalker.html', 'w') { |file| file.write(html) } puts '[html] Generated HTML file' generate('mythwalker', :all)