From 852db1520fc1d54e4470df6497c9789818608f68 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sun, 17 Jul 2022 15:13:08 -0400 Subject: [PATCH] Add birchtree.me extractor --- lib/frenzy/pipeline/extractor/birchtree.ex | 19 +++++++++++++++++++ .../live/configure_stage/scrape_stage_live.ex | 1 + 2 files changed, 20 insertions(+) create mode 100644 lib/frenzy/pipeline/extractor/birchtree.ex 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},