projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
[akkoma]
/
lib
/
pleroma
/
web
/
admin_api
/
controllers
/
media_proxy_cache_controller.ex
diff --git
a/lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex
b/lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex
index 76d3af4efccac79edcd8a1fc32faf46bc6ae365a..a6d7aaf54a49e28568ed9c69e7fbd1bb196dee45 100644
(file)
--- a/
lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex
+++ b/
lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex
@@
-1,24
+1,26
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-202
0
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-202
1
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.AdminAPI.MediaProxyCacheController do
use Pleroma.Web, :controller
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.AdminAPI.MediaProxyCacheController do
use Pleroma.Web, :controller
- alias Pleroma.Plugs.OAuthScopesPlug
alias Pleroma.Web.ApiSpec.Admin, as: Spec
alias Pleroma.Web.MediaProxy
alias Pleroma.Web.ApiSpec.Admin, as: Spec
alias Pleroma.Web.MediaProxy
+ alias Pleroma.Web.Plugs.OAuthScopesPlug
+
+ @cachex Pleroma.Config.get([:cachex, :provider], Cachex)
plug(Pleroma.Web.ApiSpec.CastAndValidate)
plug(
OAuthScopesPlug,
plug(Pleroma.Web.ApiSpec.CastAndValidate)
plug(
OAuthScopesPlug,
- %{scopes: ["
read:media_proxy_caches"], admin: true
} when action in [:index]
+ %{scopes: ["
admin:read:media_proxy_caches"]
} when action in [:index]
)
plug(
OAuthScopesPlug,
)
plug(
OAuthScopesPlug,
- %{scopes: ["
write:media_proxy_caches"], admin: true
} when action in [:purge, :delete]
+ %{scopes: ["
admin:write:media_proxy_caches"]
} when action in [:purge, :delete]
)
action_fallback(Pleroma.Web.AdminAPI.FallbackController)
)
action_fallback(Pleroma.Web.AdminAPI.FallbackController)
@@
-38,18
+40,20
@@
defmodule Pleroma.Web.AdminAPI.MediaProxyCacheController do
defp fetch_entries(params) do
MediaProxy.cache_table()
defp fetch_entries(params) do
MediaProxy.cache_table()
- |>
Cachex.export!(
)
- |> filter_
url
s(params[:query])
+ |>
@cachex.stream!(Cachex.Query.create(true, :key)
)
+ |> filter_
entrie
s(params[:query])
end
end
- defp filter_urls(entries, query) when is_binary(query) do
- for {_, url, _, _, _} <- entries, String.contains?(url, query), do: url
- end
+ defp filter_entries(stream, query) when is_binary(query) do
+ regex = ~r/#{query}/i
- defp filter_urls(entries, _) do
- Enum.map(entries, fn {_, url, _, _, _} -> url end)
+ stream
+ |> Enum.filter(fn url -> String.match?(url, regex) end)
+ |> Enum.to_list()
end
end
+ defp filter_entries(stream, _), do: Enum.to_list(stream)
+
defp paginate_entries(entries, page, page_size) do
offset = page_size * (page - 1)
Enum.slice(entries, offset, page_size)
defp paginate_entries(entries, page, page_size) do
offset = page_size * (page - 1)
Enum.slice(entries, offset, page_size)