diff --git a/lib/pinchflat/media.ex b/lib/pinchflat/media.ex index b89f2bd..a3127f6 100644 --- a/lib/pinchflat/media.ex +++ b/lib/pinchflat/media.ex @@ -257,7 +257,7 @@ defmodule Pinchflat.Media do {{:shorts_behaviour, :only}, %{livestream_behaviour: :only}} -> dynamic( [mi], - ^dynamic and (mi.livestream == true or fragment("LOWER(?) LIKE LOWER(?)", mi.original_url, "%/shorts/%")) + ^dynamic and (mi.livestream == true or mi.short_form_content == true) ) # Technically redundant, but makes the other clauses easier to parse @@ -266,16 +266,13 @@ defmodule Pinchflat.Media do dynamic {{:shorts_behaviour, :only}, _} -> - # return records with /shorts/ in the original_url - dynamic([mi], ^dynamic and fragment("LOWER(?) LIKE LOWER(?)", mi.original_url, "%/shorts/%")) + dynamic([mi], ^dynamic and mi.short_form_content == true) {{:livestream_behaviour, :only}, _} -> - # return records with livestream: true dynamic([mi], ^dynamic and mi.livestream == true) {{:shorts_behaviour, :exclude}, %{livestream_behaviour: lb}} when lb != :only -> - # return records without /shorts/ in the original_url - dynamic([mi], ^dynamic and fragment("LOWER(?) NOT LIKE LOWER(?)", mi.original_url, "%/shorts/%")) + dynamic([mi], ^dynamic and mi.short_form_content == false) {{:livestream_behaviour, :exclude}, %{shorts_behaviour: sb}} when sb != :only -> # return records with livestream: false diff --git a/test/pinchflat/media_test.exs b/test/pinchflat/media_test.exs index 3c66e84..870cef7 100644 --- a/test/pinchflat/media_test.exs +++ b/test/pinchflat/media_test.exs @@ -97,7 +97,7 @@ defmodule Pinchflat.MediaTest do test "returns shorts and normal media when shorts_behaviour is :include" do source = source_fixture(%{media_profile_id: media_profile_fixture(%{shorts_behaviour: :include}).id}) normal = media_item_fixture(%{source_id: source.id, media_filepath: nil}) - short = media_item_fixture(%{source_id: source.id, media_filepath: nil, original_url: "/shorts/"}) + short = media_item_fixture(%{source_id: source.id, media_filepath: nil, short_form_content: true}) assert Media.list_pending_media_items_for(source) == [normal, short] end @@ -105,7 +105,7 @@ defmodule Pinchflat.MediaTest do test "returns only shorts when shorts_behaviour is :only" do source = source_fixture(%{media_profile_id: media_profile_fixture(%{shorts_behaviour: :only}).id}) _normal = media_item_fixture(%{source_id: source.id, media_filepath: nil}) - short = media_item_fixture(%{source_id: source.id, media_filepath: nil, original_url: "/shorts/"}) + short = media_item_fixture(%{source_id: source.id, media_filepath: nil, short_form_content: true}) assert Media.list_pending_media_items_for(source) == [short] end @@ -113,7 +113,7 @@ defmodule Pinchflat.MediaTest do test "returns only normal media when shorts_behaviour is :exclude" do source = source_fixture(%{media_profile_id: media_profile_fixture(%{shorts_behaviour: :exclude}).id}) normal = media_item_fixture(%{source_id: source.id, media_filepath: nil}) - _short = media_item_fixture(%{source_id: source.id, media_filepath: nil, original_url: "/shorts/"}) + _short = media_item_fixture(%{source_id: source.id, media_filepath: nil, short_form_content: true}) assert Media.list_pending_media_items_for(source) == [normal] end @@ -158,7 +158,7 @@ defmodule Pinchflat.MediaTest do normal = media_item_fixture(%{source_id: source.id, media_filepath: nil}) livestream = media_item_fixture(%{source_id: source.id, media_filepath: nil, livestream: true}) - short = media_item_fixture(%{source_id: source.id, media_filepath: nil, original_url: "/shorts/"}) + short = media_item_fixture(%{source_id: source.id, media_filepath: nil, short_form_content: true}) assert Media.list_pending_media_items_for(source) == [normal, livestream, short] end @@ -175,7 +175,7 @@ defmodule Pinchflat.MediaTest do _normal = media_item_fixture(%{source_id: source.id, media_filepath: nil}) livestream = media_item_fixture(%{source_id: source.id, media_filepath: nil, livestream: true}) - short = media_item_fixture(%{source_id: source.id, media_filepath: nil, original_url: "/shorts/"}) + short = media_item_fixture(%{source_id: source.id, media_filepath: nil, short_form_content: true}) assert Media.list_pending_media_items_for(source) == [livestream, short] end @@ -192,7 +192,7 @@ defmodule Pinchflat.MediaTest do normal = media_item_fixture(%{source_id: source.id, media_filepath: nil}) _livestream = media_item_fixture(%{source_id: source.id, media_filepath: nil, livestream: true}) - _short = media_item_fixture(%{source_id: source.id, media_filepath: nil, original_url: "/shorts/"}) + _short = media_item_fixture(%{source_id: source.id, media_filepath: nil, short_form_content: true}) assert Media.list_pending_media_items_for(source) == [normal] end @@ -209,7 +209,7 @@ defmodule Pinchflat.MediaTest do _normal = media_item_fixture(%{source_id: source.id, media_filepath: nil}) _livestream = media_item_fixture(%{source_id: source.id, media_filepath: nil, livestream: true}) - short = media_item_fixture(%{source_id: source.id, media_filepath: nil, original_url: "/shorts/"}) + short = media_item_fixture(%{source_id: source.id, media_filepath: nil, short_form_content: true}) assert Media.list_pending_media_items_for(source) == [short] end @@ -249,7 +249,7 @@ defmodule Pinchflat.MediaTest do test "returns false if the media hasn't been downloaded but the profile doesn't DL shorts" do source = source_fixture(%{media_profile_id: media_profile_fixture(%{shorts_behaviour: :exclude}).id}) - media_item = media_item_fixture(%{source_id: source.id, media_filepath: nil, original_url: "/shorts/"}) + media_item = media_item_fixture(%{source_id: source.id, media_filepath: nil, short_form_content: true}) refute Media.pending_download?(media_item) end