Class: SourceMonitor::SourceScrapeTestsController

Inherits:
ApplicationController show all
Includes:
SetSource
Defined in:
app/controllers/source_monitor/source_scrape_tests_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/controllers/source_monitor/source_scrape_tests_controller.rb', line 9

def create
  item = pick_test_item
  unless item
    handle_no_item
    return
  end

  result = SourceMonitor::Scraping::ItemScraper.new(item: item, source: @source).call

  @test_result = {
    item: item.reload,
    scrape_result: result,
    feed_word_count: item.item_content&.feed_word_count,
    scraped_word_count: item.item_content&.scraped_word_count,
    feed_content_preview: item.content.to_s.truncate(500),
    scraped_content_preview: item.item_content&.scraped_content.to_s.truncate(500),
    improvement: compute_improvement(item)
  }

  respond_to do |format|
    format.turbo_stream do
      render turbo_stream: [
        turbo_stream.remove("scrape_test_modal_#{@source.id}"),
        turbo_stream.append_all("body",
          partial: "source_monitor/source_scrape_tests/result",
          locals: { source: @source, test_result: @test_result })
      ]
    end
    format.html { render :show }
  end
end