@suggestions Application.get_env(:pleroma, :suggestions)
def suggestions(%{assigns: %{user: user}} = conn, _) do
- host = String.replace Web.base_url(), "https://", ""
+ host =
+ Application.get_env(:pleroma, Pleroma.Web.Endpoint)
+ |> Keyword.get(:url)
+ |> Keyword.get(:host)
+
user = user.nickname
api = Keyword.get(@suggestions, :third_party_engine, "")
url = String.replace(api, "{{host}}", host) |> String.replace("{{user}}", user)
+
with {:ok, %{status_code: 200, body: body}} <-
- @httpoison.get(url),
+ @httpoison.get(url, [], timeout: 300_000, recv_timeout: 300_000),
{:ok, data} <- Jason.decode(body) do
+ data2 =
+ Enum.slice(data, 0, 40)
+ |> Enum.map(fn x ->
+ Map.put(x, "id", User.get_or_fetch(x["acct"]).id)
+ end)
+
conn
- |> json(data)
+ |> json(data2)
else
e -> Logger.error("Could not decode user at fetch #{url}, #{inspect(e)}")
end