diff options
| author | Maksim Pechnikov <parallel588@gmail.com> | 2020-05-16 15:16:33 +0300 | 
|---|---|---|
| committer | Maksim Pechnikov <parallel588@gmail.com> | 2020-05-17 05:56:20 +0300 | 
| commit | 3f8d68bdf3224cd6023b3d7f8e64221222872820 (patch) | |
| tree | 87262b9635af9bc869aae0be0e9bc57c4442db1d /lib | |
| parent | cb40602a167f4637dc6df6633ec2dfe33f774177 (diff) | |
| download | pleroma-3f8d68bdf3224cd6023b3d7f8e64221222872820.tar.gz pleroma-3f8d68bdf3224cd6023b3d7f8e64221222872820.zip | |
added example cache purge script
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/media_proxy/invalidations/http.ex | 16 | ||||
| -rw-r--r-- | lib/pleroma/web/media_proxy/invalidations/nginx.ex | 12 | ||||
| -rw-r--r-- | lib/pleroma/web/media_proxy/invalidations/script.ex | 11 | 
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 | 
