From d1fe87bdf3fc69f4655fc9dc980a6469a5f25700 Mon Sep 17 00:00:00 2001 From: Kieran Date: Wed, 27 Mar 2024 19:39:50 -0700 Subject: [PATCH] Updated fast indexing to respect title filters (#136) --- lib/pinchflat/media/media.ex | 1 + test/pinchflat/media_test.exs | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lib/pinchflat/media/media.ex b/lib/pinchflat/media/media.ex index e457ae7..e6be6de 100644 --- a/lib/pinchflat/media/media.ex +++ b/lib/pinchflat/media/media.ex @@ -101,6 +101,7 @@ defmodule Pinchflat.Media do |> where([mi], mi.id == ^media_item.id and is_nil(mi.media_filepath)) |> where(^build_format_clauses(media_item.source.media_profile)) |> where(^maybe_apply_cutoff_date(media_item.source)) + |> where(^maybe_apply_title_regex(media_item.source)) |> Repo.exists?() end diff --git a/test/pinchflat/media_test.exs b/test/pinchflat/media_test.exs index 40e338c..dc1b4fe 100644 --- a/test/pinchflat/media_test.exs +++ b/test/pinchflat/media_test.exs @@ -325,6 +325,27 @@ defmodule Pinchflat.MediaTest do assert Media.pending_download?(media_item) end + + test "returns true if the content matches the title regex" do + source = source_fixture(%{title_filter_regex: "(?i)^FOO$"}) + media_item = media_item_fixture(%{source_id: source.id, media_filepath: nil, title: "foo"}) + + assert Media.pending_download?(media_item) + end + + test "returns false if the content doesn't match the title regex" do + source = source_fixture(%{title_filter_regex: "(?i)^FOO$"}) + media_item = media_item_fixture(%{source_id: source.id, media_filepath: nil, title: "bar"}) + + refute Media.pending_download?(media_item) + end + + test "return true if there is no title regex" do + source = source_fixture(%{title_filter_regex: nil}) + media_item = media_item_fixture(%{source_id: source.id, media_filepath: nil, title: "foo"}) + + assert Media.pending_download?(media_item) + end end describe "search/1" do