Phoenix 1.8 app that scrapes ammunition retailers (Lucky Gunner, SGAmmo) for price data and displays historical price trends. - Data model: retailers, calibers, products, price snapshots - Scraper infrastructure with Req, Floki, realistic browser headers - Oban-scheduled scrape jobs (every 4h with randomized delays) - LiveView pages: homepage with category cards, caliber detail with price table, Chart.js price history, and price stats banner - 18 seeded calibers across handgun/rifle/rimfire/shotgun categories - 77 tests
7 lines
228 B
Elixir
7 lines
228 B
Elixir
defmodule Ammoprices.Scraping.Scraper do
|
|
@moduledoc false
|
|
|
|
@callback retailer_slug() :: String.t()
|
|
@callback category_url(caliber :: map()) :: String.t() | nil
|
|
@callback parse_products(html :: String.t()) :: [map()]
|
|
end
|