diff options
author | Mark Felder <feld@feld.me> | 2025-02-21 17:38:55 -0800 |
---|---|---|
committer | Mark Felder <feld@feld.me> | 2025-02-21 17:38:55 -0800 |
commit | f26509bf1621f05e6188df75e5f27d1c8ec77593 (patch) | |
tree | 784f1f7abdee53d4b907c0085208530a704e8ee2 /lib | |
parent | 31e3b9864161e1fd697a264c88a62740dddbc07d (diff) | |
download | pleroma-f26509bf1621f05e6188df75e5f27d1c8ec77593.tar.gz pleroma-f26509bf1621f05e6188df75e5f27d1c8ec77593.zip |
Fix missing check for domain presence in rich media ignore_host configuration
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/rich_media/card.ex | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/pleroma/web/rich_media/card.ex b/lib/pleroma/web/rich_media/card.ex index abad4957e..6b4bb9555 100644 --- a/lib/pleroma/web/rich_media/card.ex +++ b/lib/pleroma/web/rich_media/card.ex @@ -54,7 +54,10 @@ defmodule Pleroma.Web.RichMedia.Card do @spec get_by_url(String.t() | nil) :: t() | nil | :error def get_by_url(url) when is_binary(url) do - if @config_impl.get([:rich_media, :enabled]) do + host = URI.parse(url).host + + with true <- @config_impl.get([:rich_media, :enabled]), + true <- host not in @config_impl.get([:rich_media, :ignore_hosts], []) do url_hash = url_to_hash(url) @cachex.fetch!(:rich_media_cache, url_hash, fn _ -> @@ -69,7 +72,7 @@ defmodule Pleroma.Web.RichMedia.Card do end end) else - :error + false -> :error end end @@ -77,7 +80,10 @@ defmodule Pleroma.Web.RichMedia.Card do @spec get_or_backfill_by_url(String.t(), keyword()) :: t() | nil def get_or_backfill_by_url(url, opts \\ []) do - if @config_impl.get([:rich_media, :enabled]) do + host = URI.parse(url).host + + with true <- @config_impl.get([:rich_media, :enabled]), + true <- host not in @config_impl.get([:rich_media, :ignore_hosts], []) do case get_by_url(url) do %__MODULE__{} = card -> card @@ -94,7 +100,7 @@ defmodule Pleroma.Web.RichMedia.Card do nil end else - nil + false -> nil end end |