class Archdown::Download

Attributes

library_root[R]
search_terms[R]

Public Class Methods

new(library_root, search_terms) click to toggle source
# File lib/archdown/download.rb, line 11
def initialize(library_root, search_terms)
  @library = Library.new(library_root)
  @search_terms = search_terms
  @client = Archivist::Client::Base.new
end

Public Instance Methods

go!(&each_book) click to toggle source
# File lib/archdown/download.rb, line 17
def go!(&each_book)
  page = 1
  loop do
    books = ::Retriable.retriable :on => Faraday::Error::TimeoutError do
      terms = @search_terms.merge(:page => page)
      begin
        @client.search(terms)
      rescue e
        $stderr.puts "Search Terms: #{JSON.pretty_generate(terms)}"
        raise
      end
    end
  
    break if books.empty?
  
    books.each do |book|
      Librarian.new(@library, book).store_book(&each_book)
    end
    page += 1
  end
end