Class: BraveSearch::Jobs::PdfDownloadJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
lib/brave_search/jobs/pdf_download_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(query:, storage_config: nil, folder: "pdfs", **search_options) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/brave_search/jobs/pdf_download_job.rb', line 8

def perform(query:, storage_config: nil, folder: "pdfs", **search_options)
  client = BraveSearch::Client.new
  storage = storage_config ? build_storage(storage_config) : nil

  progress_callback = lambda do |current, total, url|
    Rails.logger.info "Downloading PDFs: #{current}/#{total} - #{url}"
  end

  result = client.search_and_download_pdfs(
    q: query,
    storage: storage,
    folder: folder,
    **search_options,
    &progress_callback
  )

  Rails.logger.info "PDF download completed: #{result[:files].size} files"
  result
end