forked from AkkomaGang/akkoma
fix search media proxy urls
This commit is contained in:
parent
56470647de
commit
f6da12f45d
2 changed files with 10 additions and 8 deletions
|
@ -38,17 +38,19 @@ def index(%{assigns: %{user: _}} = conn, params) do
|
||||||
|
|
||||||
defp fetch_entries(params) do
|
defp fetch_entries(params) do
|
||||||
MediaProxy.cache_table()
|
MediaProxy.cache_table()
|
||||||
|> Cachex.export!()
|
|> Cachex.stream!(Cachex.Query.create(true, :key))
|
||||||
|> filter_urls(params[:query])
|
|> filter_entries(params[:query])
|
||||||
end
|
end
|
||||||
|
|
||||||
defp filter_urls(entries, query) when is_binary(query) do
|
defp filter_entries(stream, query) when is_binary(query) do
|
||||||
for {_, url, _, _, _} <- entries, String.contains?(url, query), do: url
|
regex = ~r/#{query}/i
|
||||||
|
|
||||||
|
stream
|
||||||
|
|> Enum.filter(fn url -> String.match?(url, regex) end)
|
||||||
|
|> Enum.to_list()
|
||||||
end
|
end
|
||||||
|
|
||||||
defp filter_urls(entries, _) do
|
defp filter_entries(stream, _), do: Enum.to_list(stream)
|
||||||
Enum.map(entries, fn {_, url, _, _, _} -> url end)
|
|
||||||
end
|
|
||||||
|
|
||||||
defp paginate_entries(entries, page, page_size) do
|
defp paginate_entries(entries, page, page_size) do
|
||||||
offset = page_size * (page - 1)
|
offset = page_size * (page - 1)
|
||||||
|
|
|
@ -89,7 +89,7 @@ test "search banned MediaProxy URLs", %{conn: conn} do
|
||||||
|
|
||||||
response =
|
response =
|
||||||
conn
|
conn
|
||||||
|> get("/api/pleroma/admin/media_proxy_caches?page_size=2&query=f44")
|
|> get("/api/pleroma/admin/media_proxy_caches?page_size=2&query=F44")
|
||||||
|> json_response_and_validate_schema(200)
|
|> json_response_and_validate_schema(200)
|
||||||
|
|
||||||
assert response["urls"] == [
|
assert response["urls"] == [
|
||||||
|
|
Loading…
Reference in a new issue