projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'migrate-legacy-tags' into 'develop'
[akkoma]
/
lib
/
pleroma
/
web
/
media_proxy
/
invalidation.ex
diff --git
a/lib/pleroma/web/media_proxy/invalidation.ex
b/lib/pleroma/web/media_proxy/invalidation.ex
index c037ff13ea7651d555d8f9201371b2701ba7e4d2..5808861e692b15a27b5e38506a2c05d953111270 100644
(file)
--- a/
lib/pleroma/web/media_proxy/invalidation.ex
+++ b/
lib/pleroma/web/media_proxy/invalidation.ex
@@
-5,22
+5,34
@@
defmodule Pleroma.Web.MediaProxy.Invalidation do
@moduledoc false
defmodule Pleroma.Web.MediaProxy.Invalidation do
@moduledoc false
- @callback purge(list(String.t()),
map()) :: {:ok, String.t(
)} | {:error, String.t()}
+ @callback purge(list(String.t()),
Keyword.t()) :: {:ok, list(String.t()
)} | {:error, String.t()}
alias Pleroma.Config
alias Pleroma.Config
+ alias Pleroma.Web.MediaProxy
- @spec purge(list(String.t())) :: {:ok, String.t()} | {:error, String.t()}
+ @spec enabled?() :: boolean()
+ def enabled?, do: Config.get([:media_proxy, :invalidation, :enabled])
+
+ @spec purge(list(String.t()) | String.t()) :: {:ok, list(String.t())} | {:error, String.t()}
def purge(urls) do
def purge(urls) do
- [:media_proxy, :invalidation, :enabled]
- |> Config.get()
- |> do_purge(urls)
+ prepared_urls = prepare_urls(urls)
+
+ if enabled?() do
+ do_purge(prepared_urls)
+ else
+ {:ok, prepared_urls}
+ end
end
end
- defp do_purge(
true,
urls) do
+ defp do_purge(urls) do
provider = Config.get([:media_proxy, :invalidation, :provider])
options = Config.get(provider)
provider.purge(urls, options)
end
provider = Config.get([:media_proxy, :invalidation, :provider])
options = Config.get(provider)
provider.purge(urls, options)
end
- defp do_purge(_, _), do: :ok
+ def prepare_urls(urls) do
+ urls
+ |> List.wrap()
+ |> Enum.map(&MediaProxy.url/1)
+ end
end
end