cosmere-books/wor-reread.rb

158 lines
6.7 KiB
Ruby

require 'date'
require 'fileutils'
require 'nokogiri'
require_relative './methods'
FileUtils.mkdir_p("wor")
BASE = 'https://www.tor.com'
links = [
"/2014/06/12/introducing-the-words-of-radiance-reread/",
"/2014/06/12/words-of-radiance-reread-prologue/",
"/2014/06/19/words-of-radiance-reread-chapter-1/",
"/2014/06/26/words-of-radiance-reread-chapter-2/",
"/2014/07/03/words-of-radiance-reread-chapter-three/",
"/2014/07/10/words-of-radiance-reread-chapter-4/",
"/2014/07/17/words-of-radiance-reread-chapter-5/",
"/2014/07/24/words-of-radiance-reread-chapter-6/",
"/2014/07/31/words-of-radiance-reread-chapter-7/",
"/2014/08/07/words-of-radiance-reread-chapter-8/",
"/2014/08/14/words-of-radiance-reread-chapter-9/",
"/2014/08/21/words-of-radiance-reread-chapter-10/",
"/2014/08/28/words-of-radiance-reread-chapter-11/",
"/2014/09/04/words-of-radiance-reread-chapter-12/",
"/2014/09/11/words-of-radiance-reread-interlude-1/",
"/2014/09/18/words-of-radiance-reread-interlude-2/",
"/2014/09/25/words-of-radiance-reread-interlude-3/",
"/2014/10/02/words-of-radiance-reread-interlude-4/",
"/2014/10/09/words-of-radiance-reread-chapter-13/",
"/2014/10/16/words-of-radiance-reread-chapter-14/",
"/2014/10/23/words-of-radiance-reread-chapter-15/",
"/2014/10/30/words-of-radiance-reread-chapter-16/",
"/2014/11/06/words-of-radiance-reread-chapter-17/",
"/2014/11/13/words-of-radiance-reread-chapter-18/",
"/2014/11/20/words-of-radiance-reread-chapter-19/",
"/2014/12/04/words-of-radiance-reread-chapter-20/",
"/2014/12/11/words-of-radiance-reread-chapter-21/",
"/2014/12/18/words-of-radiance-reread-chapter-22/",
"/2015/01/08/words-of-radiance-reread-chapter-23/",
"/2015/01/15/words-of-radiance-reread-chapter-24/",
"/2015/01/22/words-of-radiance-reread-chapter-25/",
"/2015/01/29/words-of-radiance-reread-chapter-26/",
"/2015/02/05/words-of-radiance-reread-chapter-27/",
"/2015/02/12/words-of-radiance-reread-chapter-28/",
"/2015/02/19/words-of-radiance-reread-chapter-29/",
"/2015/02/26/words-of-radiance-reread-chapter-30/",
"/2015/03/05/words-of-radiance-reread-chapter-31/",
"/2015/03/12/words-of-radiance-reread-chapter-32/",
"/2015/03/19/words-of-radiance-reread-chapter-33/",
"/2015/03/26/words-of-radiance-reread-chapter-34/",
"/2015/04/02/words-of-radiance-reread-part-2-epigraphs/",
"/2015/04/09/words-of-radiance-reread-interludes-5-and-6/",
"/2015/04/16/words-of-radiance-reread-interludes-7-and-8/",
"/2015/04/23/words-of-radiance-reread-chapter-35/",
"/2015/04/30/words-of-radiance-reread-chapter-36/",
"/2015/05/07/words-of-radiance-reread-chapter-37/",
"/2015/05/14/words-of-radiance-reread-chapter-38/",
"/2015/05/21/words-of-radiance-reread-chapter-39/",
"/2015/05/28/words-of-radiance-reread-chapter-40/",
"/2015/06/04/words-of-radiance-reread-chapter-41/",
"/2015/06/11/words-of-radiance-reread-chapter-42/",
"/2015/06/18/words-of-radiance-reread-chapter-43/",
"/2015/06/25/words-of-radiance-reread-chapter-44/",
"/2015/07/02/words-of-radiance-reread-chapter-45/",
"/2015/07/09/words-of-radiance-reread-chapter-46/",
"/2015/07/23/words-of-radiance-reread-chapter-47/",
"/2015/07/30/words-of-radiance-reread-chapter-48/",
"/2015/08/06/words-of-radiance-reread-chapter-49/",
"/2015/08/13/words-of-radiance-reread-chapter-50/",
"/2015/08/20/words-of-radiance-reread-chapter-51/",
"/2015/08/27/words-of-radiance-reread-chapter-52/",
"/2015/09/03/words-of-radiance-reread-chapter-53/",
"/2015/09/10/words-of-radiance-reread-chapter-54/",
"/2015/09/17/words-of-radiance-reread-chapter-55/",
"/2015/09/24/words-of-radiance-reread-chapter-56/",
"/2015/10/01/words-of-radiance-reread-chapter-57/",
"/2015/10/08/words-of-radiance-reread-chapter-58/",
"/2015/10/15/words-of-radiance-reread-interlude-9/",
"/2015/10/22/words-of-radiance-reread-interlude-10/",
"/2015/10/29/words-of-radiance-reread-interlude-11/",
"/2015/11/05/words-of-radiance-reread-chapter-59/",
"/2015/11/12/words-of-radiance-reread-chapter-60/",
"/2015/11/19/words-of-radiance-reread-chapter-61/",
"/2015/12/03/words-of-radiance-reread-chapter-62/",
"/2015/12/10/words-of-radiance-reread-chapter-63/",
"/2015/12/17/words-of-radiance-reread-chapter-64/",
"/2016/01/07/words-of-radiance-reread-chapter-65/",
"/2016/01/14/words-of-radiance-reread-chapter-66/",
"/2016/01/21/words-of-radiance-reread-chapter-67/",
"/2016/01/28/words-of-radiance-reread-chapter-68/",
"/2016/02/04/words-of-radiance-reread-chapter-69/",
"/2016/02/11/words-of-radiance-reread-chapter-70/",
"/2016/02/18/words-of-radiance-reread-chapter-71/",
"/2016/02/25/words-of-radiance-reread-chapter-72/",
"/2016/03/03/words-of-radiance-reread-chapter-73/",
"/2016/03/10/words-of-radiance-reread-chapter-74/",
"/2016/03/17/words-of-radiance-reread-chapter-75/",
"/2016/03/24/words-of-radiance-reread-part-4-epigraphs/",
"/2016/03/31/words-of-radiance-reread-interludes-12-and-13/",
"/2016/04/07/words-of-radiance-reread-interlude-14/",
"/2016/04/14/words-of-radiance-reread-chapter-76/",
"/2016/04/21/words-of-radiance-reread-chapter-77/",
"/2016/04/28/words-of-radiance-reread-chapter-78/",
"/2016/05/05/words-of-radiance-reread-chapter-79/",
"/2016/05/12/words-of-radiance-reread-chapter-80/",
"/2016/05/19/words-of-radiance-reread-chapter-81/",
"/2016/05/26/words-of-radiance-reread-chapter-82/",
"/2016/06/02/words-of-radiance-reread-chapter-83/",
"/2016/06/09/words-of-radiance-reread-chapter-84/",
"/2016/06/16/words-of-radiance-reread-chapter-85/",
"/2016/06/23/words-of-radiance-reread-chapter-86/",
"/2016/06/30/words-of-radiance-reread-chapter-87/",
"/2016/07/14/words-of-radiance-reread-chapter-88/",
"/2016/07/28/words-of-radiance-reread-chapter-89/",
"/2016/08/04/words-of-radiance-reread-epilogue-and-what-comes-next/"
]
episode = 1
for link in links
url = BASE + link
puts "Download #{url}"
if !File.exists? "wor/#{episode}.html"
`wget --no-clobber "#{url}" --output-document "wor/#{episode}.html" -o /dev/null`
end
episode +=1
end
# Now we have all the files
html = ""
for i in 1..(links.length)
complete_html = Nokogiri::HTML(open("wor/#{i}.html"))
page = complete_html.css('.entry-content')
title = complete_html.css('.entry-title>a').inner_html
ending = false
page.children.each do |e|
if e.attribute('class') and (e['class'].include? 'squib' or e['class'].include? 'post-end-spacer')
ending = true
end
if ending
e.remove
end
end
html += "<h1>#{title}</h1>"
html += page.inner_html
url = links[i-1]
html += "<p>Visit <a href='#{url}'>tor.com</a> for discussion.</p>"
end
File.open("books/wor-reread.html", 'w') { |file| file.write(html) }
puts "[html] Generated HTML file"
generate("wor-reread", :all)