frenzy/lib/frenzy/pipeline/filter_stage.ex

21 lines
455 B
Elixir
Raw Normal View History

2019-07-09 02:41:18 +00:00
defmodule Frenzy.Pipeline.FilterStage do
require Logger
alias Frenzy.Pipeline.{Stage, FilterEngine}
2019-07-09 02:41:18 +00:00
@behaviour Stage
@impl Stage
def apply(filter, item_params) do
if FilterEngine.test(filter, item_params) do
{:ok, item_params}
2019-07-09 02:41:18 +00:00
else
Logger.debug("Skipping item #{item_params.url} due to feed filter")
:tombstone
2019-07-09 02:41:18 +00:00
end
end
@impl Stage
def validate_opts(opts) do
FilterEngine.validate_filter(opts)
2019-07-09 02:41:18 +00:00
end
end