diff --git a/lib/frenzy/pipeline/extractor/birchtree.ex b/lib/frenzy/pipeline/extractor/birchtree.ex new file mode 100644 index 0000000..8f75392 --- /dev/null +++ b/lib/frenzy/pipeline/extractor/birchtree.ex @@ -0,0 +1,19 @@ +defmodule Frenzy.Pipeline.Extractor.Birchtree do + @moduledoc """ + Extractor for https://birchtree.me + """ + + alias Frenzy.Pipeline.Extractor + @behaviour Extractor + + @impl Extractor + def extract(html_tree) do + case Floki.find(html_tree, "section.post-content") do + [content_elem | _] -> + {:ok, content_elem} + + _ -> + {:error, "no matching elements"} + end + end +end diff --git a/lib/frenzy_web/live/configure_stage/scrape_stage_live.ex b/lib/frenzy_web/live/configure_stage/scrape_stage_live.ex index 4402bd6..46c6856 100644 --- a/lib/frenzy_web/live/configure_stage/scrape_stage_live.ex +++ b/lib/frenzy_web/live/configure_stage/scrape_stage_live.ex @@ -6,6 +6,7 @@ defmodule FrenzyWeb.ConfigureStage.ScrapeStageLive do {"512 Pixels", Frenzy.Pipeline.Extractor.FiveTwelvePixels}, {"Ars Technica", Frenzy.Pipeline.Extractor.ArsTechnica}, {"beckyhansmeyer.com", Frenzy.Pipeline.Extractor.BeckyHansmeyer}, + {"birchtree.me", Frenzy.Pipeline.Extractor.Birchtree}, {"daringfireball.net", Frenzy.Pipeline.Extractor.DaringFireball}, {"ericasadun.com", Frenzy.Pipeline.Extractor.EricaSadun}, {"finertech.com", Frenzy.Pipeline.Extractor.FinerTech},