aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web')
-rw-r--r--lib/pleroma/web/media_proxy/invalidation.ex1
-rw-r--r--lib/pleroma/web/media_proxy/media_proxy.ex16
2 files changed, 15 insertions, 2 deletions
diff --git a/lib/pleroma/web/media_proxy/invalidation.ex b/lib/pleroma/web/media_proxy/invalidation.ex
index fac731c5c..537cb76d6 100644
--- a/lib/pleroma/web/media_proxy/invalidation.ex
+++ b/lib/pleroma/web/media_proxy/invalidation.ex
@@ -31,6 +31,7 @@ defmodule Pleroma.Web.MediaProxy.Invalidation do
def prepare_urls(urls) do
urls
|> List.wrap()
+ |> Enum.filter(&MediaProxy.is_url_proxiable?(&1))
|> Enum.map(&MediaProxy.url(&1))
end
end
diff --git a/lib/pleroma/web/media_proxy/media_proxy.ex b/lib/pleroma/web/media_proxy/media_proxy.ex
index 7b8e7e823..e5f1d242e 100644
--- a/lib/pleroma/web/media_proxy/media_proxy.ex
+++ b/lib/pleroma/web/media_proxy/media_proxy.ex
@@ -30,20 +30,32 @@ defmodule Pleroma.Web.MediaProxy do
end
def put_in_deleted_urls(url) when is_binary(url) do
- Cachex.put(:deleted_urls_cache, url(url), true)
+ if is_url_proxiable?(url) do
+ Cachex.put(:deleted_urls_cache, url(url), true)
+ else
+ true
+ end
end
def url(url) when is_nil(url) or url == "", do: nil
def url("/" <> _ = url), do: url
def url(url) do
- if disabled?() or local?(url) or whitelisted?(url) do
+ if disabled?() or not is_url_proxiable?(url) do
url
else
encode_url(url)
end
end
+ def is_url_proxiable?(url) do
+ if local?(url) or whitelisted?(url) do
+ false
+ else
+ true
+ end
+ end
+
defp disabled?, do: !Config.get([:media_proxy, :enabled], false)
defp local?(url), do: String.starts_with?(url, Pleroma.Web.base_url())