aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/media_proxy/invalidations/http.ex16
-rw-r--r--lib/pleroma/web/media_proxy/invalidations/nginx.ex12
-rw-r--r--lib/pleroma/web/media_proxy/invalidations/script.ex11
3 files changed, 24 insertions, 15 deletions
diff --git a/lib/pleroma/web/media_proxy/invalidations/http.ex b/lib/pleroma/web/media_proxy/invalidations/http.ex
new file mode 100644
index 000000000..40c624efc
--- /dev/null
+++ b/lib/pleroma/web/media_proxy/invalidations/http.ex
@@ -0,0 +1,16 @@
+defmodule Pleroma.Web.MediaProxy.Invalidation.Http do
+ @behaviour Pleroma.Web.MediaProxy.Invalidation
+
+ @impl Pleroma.Web.MediaProxy.Invalidation
+ def purge(urls, opts) do
+ method = Map.get(opts, :http_method, :purge)
+ headers = Map.get(opts, :http_headers, [])
+ options = Map.get(opts, :http_options, [])
+
+ Enum.each(urls, fn url ->
+ Pleroma.HTTP.request(method, url, "", headers, options)
+ end)
+
+ {:ok, "success"}
+ end
+end
diff --git a/lib/pleroma/web/media_proxy/invalidations/nginx.ex b/lib/pleroma/web/media_proxy/invalidations/nginx.ex
deleted file mode 100644
index 5bfdd505c..000000000
--- a/lib/pleroma/web/media_proxy/invalidations/nginx.ex
+++ /dev/null
@@ -1,12 +0,0 @@
-defmodule Pleroma.Web.MediaProxy.Invalidation.Nginx do
- @behaviour Pleroma.Web.MediaProxy.Invalidation
-
- @impl Pleroma.Web.MediaProxy.Invalidation
- def purge(urls, _opts) do
- Enum.each(urls, fn url ->
- Pleroma.HTTP.request(:purge, url, "", [], [])
- end)
-
- {:ok, "success"}
- end
-end
diff --git a/lib/pleroma/web/media_proxy/invalidations/script.ex b/lib/pleroma/web/media_proxy/invalidations/script.ex
index f458845a0..94c79511a 100644
--- a/lib/pleroma/web/media_proxy/invalidations/script.ex
+++ b/lib/pleroma/web/media_proxy/invalidations/script.ex
@@ -2,9 +2,14 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.Script do
@behaviour Pleroma.Web.MediaProxy.Invalidation
@impl Pleroma.Web.MediaProxy.Invalidation
- def purge(urls, %{script_path: script_path} = options) do
- script_args = List.wrap(Map.get(options, :script_args, []))
- System.cmd(Path.expand(script_path), [urls] ++ script_args)
+ def purge(urls, %{script_path: script_path} = _options) do
+ args =
+ urls
+ |> List.wrap()
+ |> Enum.uniq()
+ |> Enum.join(" ")
+
+ System.cmd(Path.expand(script_path), [args])
{:ok, "success"}
end
end